qfedu-c-level/day13/d6.c

39 lines
1.1 KiB
C

// 共用体
// 特点:
// 1. 共用体中的所有成员共用一块内存空间
// 2. 共用体的大小是最大成员的大小
// 3. 共用体的成员可以是不同的数据类型
// 只初始化第一个成员
// 不能同时使用其他的成员
// 变量中起作用的只有最后一次赋值
// 在存入一个新的值之前, 会把上一个值覆盖掉
#include <stdio.h>
union data1_uni
{
unsigned char a;
short b;
int c;
} data1, data2;
int main()
{
printf("%ld\n", sizeof(union data1_uni));
data1.a = 10;
data1.c = 20;
printf("a = %d, b = %d, c = %d\n", data1.a, data1.b, data1.c);
union data1_uni data2 = {14};
printf("a = %d, b = %d, c = %d\n", data2.a, data2.b, data2.c);
union data1_uni data3 = {257};
printf("a = %d, b = %d, c = %d\n", data3.a, data3.b, data3.c);
union data1_uni data4;
data4.b = 300;
printf("a = %d, b = %d, c = %d\n", data4.a, data4.b, data4.c);
union data1_uni data5;
data5.c = 32769;
printf("a = %d, b = %d, c = %d\n", data5.a, data5.b, data5.c);
return 0;
}