ZHCU820Y September 2004 – June 2021
当编译器为结构分配空间时,它会根据需要分配尽可能多的字来容纳结构的所有成员,并遵守每个成员的对齐约束。
当结构包含 32 位 (long) 成员时,long 与 1 字(16 位)边界对齐。这可能需要在结构的前面、内部或末尾进行填充,以确保 long 相应地对齐并且结构的 大小值是偶数。
所有非字段类型都在字或字节边界上对齐。字段按请求的位数分配。相邻字段被打包成一个字的相邻位,但它们不会与字重叠。如果一个字段与下一个字重叠,则会将整个字段放入下一个字中。
字段相遇时就会被打包;首先填充结构字的最低有效位。Topic Link Label7.2.1.4 显示了 var 的 C 代码定义,而 图 7-1 显示了 var 的内存布局。