但此时所谓的整体是把 test1 中确定的那个最大的 X
拿出来来 确定 test2 的 X。 故
默认情况下,结构 test2 类型变量的大小为:20(test1 中最大的 X 被确定为 4,test2
中也为 4,t1 占 12
个字节, 在 c2 后又填充了 3 字节,总共 20 字节)。举个例子:
C 语言数据类型大小和结构体中变量
的地址分配方法
点击:
struct test1 {char c1; double d; char c2;};
struct test2 { int i; struct test1 t1; char c2;};
默认情况下,结构体 test2 的大小为 40(最大的 X 被确定为 8),强制 4 字节对
齐时大小为 24。其实这可以理解为编译器的另一条规则:结构体的大小必须为
其最大的那个 X 的整数倍。