一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。
union变量的大小为其中size最大类型的大小。
#include<stdio.h>
union U
{
int a;
char b;
};
int main()
{
union U x;
printf("%d\n", sizeof(x)); // 4
x.a = 97 + (98 << 0xf); // a的assic码是97
//x.b = 'b'; // x.a 会被改
printf("%d %c\n", x.a, x.b); // x.b = 'a', 因为最后一个字节值为97
return 0;
}
个性签名:时间会解决一切