C++-结构体,联合体,枚举,的区别

结构体:

struct NUM

{

int number;

}a;

结构体是声明只是一个模型,没有分配内存空间。当进行定义结构体变量后才分配内存空间

联合体:

union data

{

int a;

}b;

大体和结构体一样,不同之处在于,它将几个不同的变量存放在同一单元,在联合体中,各个成员变量所占内存的字节数各不相同,但都从同一个首地址开始。不管在任何时刻,只有一个变量处于活动状态。联合体所占的内存长度等于各个成员的长度之和。

enum color

{

white,black

}c;

默认状态下,每个枚举常量都对应一个整数,并从0开始,但也可指定;

typedef 已有类型名 新类型名

typedef float real;

real f1;