- 联合(共用体)union
- 联合类型的定义
- 联合的特点
- 联合大小的计算
联合也是一种特殊的自定义类型,这种类型定义的变量也包含也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。
比如:
//联合体 union Test { int a; double b; char c; }; void main() { union Test t; //联合变量的定义 printf("%dn", sizeof(t)); //8 }联合的特点
联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)
union Test { char c; //char类型1字节 int i; //int类型4字节 }; void main() { union Test t; printf("sizeof(t) = %dn", sizeof(t)); //4 }联合大小的计算
- 联合的大小至少是最大成员的大小
- 当最大成员大小不是最大对齐数的整数倍时,就要对其到最大对齐的整数倍
union Test1 //8 { char c[5]; //5 int i; //4 }; union Test2 //16 { short s[7]; //14 int i; //4 }; void main() { union Test1 t1; union Test2 t2; printf("sizeof(t1) = %dn", sizeof(t1)); //8 printf("sizeof(t2) = %dn", sizeof(t2)); //16 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)