一,联合体
(1)像结构体一样,联合体由一个或者多个成员构成,这些成员可以是不同类型。
(2)编译器只为最大成分分配空间,联合体的特点是所有成员共用一块空间。
(3)因此联合体变量大小,至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。
二,相同成员结构体和联合体的对比
三,计算联合体的大小
(1)联合体至少是最大成员的大小。
(2)但最大成员的大小不是对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。
四,枚举类型
(1)顾名思义,一一列举出来
如:
其中 enum Sex为枚举类型,{} 里面的成员叫做可能取值,也叫枚举常量。其中这些可能的取值都是有值的,从零开始依次加一,在声明枚举类形式时可以赋值。
五,枚举类型的优点
(1)增加代码的可读性。
(2)和#define定义的标识符比较枚举类型检查,更加严谨。
(3)便于调试,与处理阶段会删除#define的定义符号。
(4)枚举类型常量是遵循作用域规则的,枚举生命在函数内,只能在函数内使用。