1.位段
1.位段的成员必须是int、unsigned int 或 signed int。
2.位段的成员后边有一个冒号和一个数字。
2.位段的内存分配
位段的空间上是按照需要以4个字节(int)或1个字节(char)的方式来开辟的。
内存分配如下图所示。
3.枚举
{ }中的内容是枚举类型的可能取值,也叫枚举常量,默认从0开始,依次递增1,在定义时也可以赋值,如:
枚举的优点:
1.增加代码的可读性和可维护性。
2.和#define定义的标识符比较,枚举有类型检查,更加严谨。
3.防止命名污染(封装)。
4.便于调试。
5.使用方便,一次可以定义多个常量。
4.联合体
联合体是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特点是这些成员共用同一块空间(所以联合体也叫公用体)。
5.联合体大小的计算
1.联合体的大小至少是最大成员的大小。
2.当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。