知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》,有兴趣的朋友可以看我置顶文章获取
union相关总结定义联合体
uniontest
{
intoffice;
charteacher[5];
};
uniontestb;
从这可以看出来,联合体内存是共享的,也就是只看那部分占用内存最大则联合体占用就是该内存
相应的缺点就是操作office就会改变teacher的前四个字节的值
根据这个特性,可以有一个妙用!
uniontest
{
unsignedcharODR;
struct
{
unsignedcharbit0:1,
bit1:1,
bit2:1,
bit3:1,
bit4:1,
bit5:1,
bit6:1,
bit7:1;
};
};
uniontestc;
这里联合体有两个成员