一、联合体基本形式
在C语言中,有一种与结构体关系密切的结构联合体,其基本形式如下所示:
union Udata
{
char cs[2];
short st;
};
union Udata x;
二、在内存中的分布
联合体与结构体最大的不同在于在内存中的分布,结构体的成员之间不会相互影响,占用不同的内存空间;而联合体的各成员共享一段内存空间。
x.cs[0]='a';
x.cs[1]='b';
x.st=0x1234;
执行上述操作,最终会把之前放入a,b字符的ASCII值覆盖掉,数组与短整型共享一段空间,相互会产生影响。读的是最后一次覆盖的数据。
在少部分情况下,共用体是为了节省内存;多数情况下,对同一个空间采取不同类型的识别。