uniion可以定义一个包含多个不同变量类型,但这些变量只共有同一个内存空间,每次只能使用其中的一种变量存储数据。
如果定义了一个整形(4字节)和字符型(1字节),那个union的大小就是4字节。 看看例子:
#include <stdio.h>
union u {
int a;
char c;
} data;
int main () {
data.c='a';
printf("union u's size %d\n", sizeof(data));
printf("data.a is %d\n", data.a);
return 0;
}
union u {
int a;
char c;
} data;
int main () {
data.c='a';
printf("union u's size %d\n", sizeof(data));
printf("data.a is %d\n", data.a);
return 0;
}
输出结果:
rize@rize-laptop:~$ ./union
union u's size 4
data.a is 97