共用体
- 定义与引用
union 共用体名
{
共用体成员
}变量表列;
共用体名.共用体成员
- 共用体变量所占内存长度等于最长的成员的长度
- 同一内存段可以存放不同类型的成员,但在每一瞬间只能存放其中一种
- 共用体变量起作用的成员是最后一次存放的成员
- 共用体变量的地址和它各个成员的地址是同一个地址
枚举类型
- 声明方式
enum weekday{sun,mon,tue,wed,thu,fri,sat};//声明枚举类型weekday
enum weekday d1,d2; //定义枚举变量,d1,d2的值仅限于枚举类型weekday列举的值的范围
//也可以将上述代码写为:
enum weekday{sun,mon,tue,wed,thu,fri,sat} d1,d2;
- 在C编译中,对枚举元素按常量处理,不能对枚举元素赋值,如:
sun=0,mon=1
是错误的 - C编译按枚举元素定义时的顺序,使它们的值为0,1,2,3,4,5,6
- C编译按枚举元素定义时的顺序,第一个元素默认为0,后续逐个加1。可以改变任何一个枚举元素(如wed)的值,改变后,wed后续的值逐个加1,wed前面的值不变。
enum weekday{sun,mon,tue,wed=10,thu,fri,sat} d1,d2;
printf("%d %d %d %d %d %d %d",sun,mon,tue,wed,thu,fri,sat);
结果:0 1 2 10 11 12 13
5.给枚举变量赋值,只能使用声明枚举类型时列举的元素,例如,给d1赋值时只能使用从sun到sat七个值。