// 共用体
// 特点:
// 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;
}