联合体

当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。

它的所有成员相对于基地址的偏移量都为0。

此结构空间要大到足够容纳最"宽"的成员。

其对齐方式要适合其中所有的成员。

联合的初始化

联合变量初始化时,这个初始值必须是联合的第1个成员的类型,而且必须是位于一对花括号里边;例如:

union{

  int  a;
  float  b;
  char  c[4]
}x={5};

此处不能将其初始化为浮点值或者字符值。如果给出的初始值是其他的类型,它就会转换(如果可能的话)为一个整数并赋值给x.a。