嘎嘎滴辣虾自定义类型:联合和枚举

📅 发布时间:2026/7/15 11:33:24 👁️ 浏览次数:
嘎嘎滴辣虾自定义类型:联合和枚举
一联合体联合体类型的声明像结构体一样联合体也是由一个或多个成员构成这些成员是不同的类型。联合体的关键字是union.但是编译器只为最大的成员分配足够的内存空间联合体的特点是所有成员共用同一块内存空间。所以联合体也叫共用体。从联合体和结构体的对比中可以看出联合体没有浪费空间从右图中看出联合体在用i的时候不可以用c用c的时候不可以用i因为ci的值的改变会相互影响联合体大小的计算1.联合体的大小至少是最大成员的大小2.当最大成员大小不是最大对齐数的整数倍的时候就要对齐到最大对齐数的整数倍易错点此题所占用了16个比特位根据联合体的特点c为占用空间最大的成员但结果不等于14因为这个大小不是其中成员中最大基本类型对齐的整数倍又因为最大基本类型为4所以这个联合体总共占16个比特位通过联合体实现商品的选择算每个联合体中结构体的大小然后得到联合体的大小判断大小端字节序的一个方法判断大小端字节序的另外一种方法对联合体中的成员i赋值i为int类型四个字节再读取c的值因为是联合体c与i的关系应与上面我所列举的右图一样所以通过判断c的值就可以判断大小端字节序。二枚举枚举类型的声明把可能的取值一一列举enum 枚举的关键字{}中的内容都是枚举类型的可能取值是枚举常量define也可以定义常量枚举类型的优点1.增加代码的可读性和可维护性2.和#define定义的标识符比较枚举有类型检查更加严谨3.便于调试预处理阶段会删除#define定义的符号4.使用方便一次性可以定义多个常量5.枚举常量是遵循作用域规则的枚举声明在函数内只能在函数内使用