1、联合类型的定义
联合也是一种特殊的自定义类型。
这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间,所以联合体也叫共用体。
1、联合类型的声明
union Un
{
char a;
int b;
};
2、联合变量的定义
union Un u;
3、打印联合变量的大小
printf("%d\n", sizeof(u));
2、联合(共用体)的大小计算
为什么这里联合体u的大小是4呢???这就要涉及到联合的大小计算的规则了。
1、联合的大小计算的规则
1)联合的大小至少是最大成员的大小。
2)当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。
这里的对齐数是什么呢?对齐数:编译器对每种类型都规定了一个对齐数,char为1,int为4,double为8.....可以简单的认为每种类型的对齐数是它的字节大小。最大对齐数:就是联合体成员的对齐数中最大的那一个。如上图,最大对齐数就是4。</