联合的存储

与联合变量关联的存储是联合的最大成员所需的存储。 在存储较小的成员时,联合变量可以包含未使用的内存空间。 所有成员都存储在同一内存空间中并以相同的地址开始。 每次将值赋给不同的成员时,都会重写存储的值。 例如:

union         /* Defines a union named x */  
{  
    char *a, b;  
    float f[20];  
} x;  

x 联合的成员(按照其声明的顺序)是指向 char 值、char 值和 float 值的数组的指针。 由于 x 是联合的最长成员,因此为 f 分配的存储是 20 个元素数组 f 所需的存储。 由于没有与联合关联的标记,因此其类型是未命名的或“匿名的”。

另请参阅

联合声明