联合体
联合体
当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。
它的所有成员相对于基地址的偏移量都为0。
此结构空间要大到足够容纳最"宽"的成员。
其对齐方式要适合其中所有的成员。
联合的初始化
联合变量初始化时,这个初始值必须是联合的第1个成员的类型,而且必须是位于一对花括号里边;例如:
union{
int a;
float b;
char c[4]
}x={5};
此处不能将其初始化为浮点值或者字符值。如果给出的初始值是其他的类型,它就会转换(如果可能的话)为一个整数并赋值给x.a。