一、共用体
(1)定义
一般形式
union 共用体名
{成员表列
}变量表列;
结构体变量所占用的内存长度等于最长的成员的长度
(2)共用体的特点
①同一个内存段可以用来存放几种不同类型的成员,但在每一瞬间只能存放其中一个成员而不是几个
②可以对共用体变量初始化,但初始化表中只能有一个常量
③共用体变量中起作用的成员是最后一次被赋值的成员
④共用体变量的地址和它的各成员的地址都是同一地址
⑤不能对共用体变量名赋值,也不能企图引用变量名来得到一个值
⑥以前的C规定不能把共用体变量作为函数参数,但可以使用指向共用体变量的指针作函数参数
⑦共用体类型可以出现在结构体类型定义中,也可以定义共用体数组
二、枚举
(1)定义
一般形式
enum[枚举名] {枚举元素列表};
其中枚举名应遵循标识符的命名规则
注意:
①C编译对枚举类型的枚举元素按常量处理
②每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4...