两个规则:
- 1.联合体大小必须能容纳联合体中最大的成员变量
- 2.通过规则1 计算出的联合体大小必须是联合体中占内存大小最大的成员类型的整数倍
#include<stdio.h>
typedef union
{
char a[7];
int b;
}test_union_1;
typedef union
{
char a[6];
char b;
}test_union_2;
typedef union
{
int a;
long b;
}test_union_3;
typedef union
{
char a[10];
char b[5];
}test_union_4;
int main()
{
int len1 = sizeof(test_union_1);
printf("len1 = %d\n",len1);
int len2 = sizeof(test_union_2);
printf("len2 = %d\n",len2);
int len3 = sizeof(test_union_3);
printf("len3 = %d\n",len3);
int len4 = sizeof(test_union_4);
printf("len4 = %d\n",len4);
return 0;
}