1.枚举(关键字:enum)
1.1枚举类型的声明
把可能的值一一列举
赋的值是可能取值
1.2枚举类型的优点
1)增加代码的可读性和可维护性
2)和#define定义的标识符比较枚举有类型检查,更加严谨
3)便于调试,预处理阶段会删除#define定义的符号
4)使用方便,一次可以定义多个常量
5)枚举常量遵循作用域规则,枚举声明在函数内,只能在函数内使用
例:
2.联合体(关键字:union)
2.1联合体的声明
1)像结构体一样,联合体也是由一个或多个成员一样,这些成员可以是不同的类型
2)编译器只为最大的成员分配足够的内存空间
联合体的特点是所有成员共用同一块内存空间---所以联合体也叫共同体
给联合体其中一个成员赋值,其他的成员的值也会跟着变化
2.2联合体的特点
联合体的成员是共用同一块空间,这样一个联合变量的大小,至少是最大成员的大小
联合体至少得有能力保存最大的那个成员
2.3相同成员的结构体和联合体对比
2.4联合体大小的计算(也是存在对齐的)
联合体的大小至少是最大成员的大小
当最大成员的大小不是最大对齐数的整数倍时,就要对齐到最大对齐数的整数倍
1)
2)
节省空间
图书,杯子,衬衫三种商品都有库存量,价格,商品类型和商品类型相关的其他信息
图书:书名,作者,页数
杯子:设计
衬衫:设计,可选颜色,可选尺寸
1)我们可以使用结构体的方式解决(但是浪费空间)
2)