C中联合体union共用内存

一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。

union变量的大小为其中size最大类型的大小。

#include<stdio.h>

union U
{
    int a;
    char b;
};

int main()
{
    union U x;
    printf("%d
", sizeof(x)); // 4

    x.a = 97 + (98 << 0xf);  // a的assic码是97
    //x.b = 'b';   // x.a 会被改

    printf("%d %c
", x.a, x.b);  // x.b = 'a', 因为最后一个字节值为97

    return 0;
}

参考链接:https://blog.csdn.net/u010585135/article/details/45172765

原文地址:https://www.cnblogs.com/lfri/p/12420129.html