联合的存储
与联合变量关联的存储是联合的最大成员所需的存储。 在存储较小的成员时,联合变量可以包含未使用的内存空间。 所有成员都存储在同一内存空间中并以相同的地址开始。 每次将值赋给不同的成员时,都会重写存储的值。 例如:
union /* Defines a union named x */
{
char *a, b;
float f[20];
} x;
按照声明的顺序,x
联合的成员是指向 char
值的指针、char
值和包含 float
值的数组。 由于 x
是联合的最长成员,因此为 f
分配的存储是 20 个元素数组 f
所需的存储。 由于没有与联合关联的标记,因此其类型是未命名的或“匿名的”。
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将推出:在整个 2024 年,我们将逐步取消以“GitHub 问题”作为内容的反馈机制,并将其替换为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈