39 lines
1.1 KiB
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;
|
||
|
}
|