关于结构体内存对齐的三条原则:
(1)结构体变量的起始地址
能够被其最宽的成员大小整除。
(2)结构体每个成员相对于起始地址的偏移
能够被其自身大小整除
,如果不能则在前一个成员后面补充字节
。
(3)结构体总体大小能够被最宽的成员的大小整除
,如不能则在后面补充字节
。
分析这个问题我们就不考虑编译器可以指定对齐大小
的情况了。在32bit环境中,一般默认的对齐大小是4。
关于结构体内存对齐的三条原则:
(1)结构体变量的起始地址
能够被其最宽的成员大小整除。
(2)结构体每个成员相对于起始地址的偏移
能够被其自身大小整除
,如果不能则在前一个成员后面补充字节
。
(3)结构体总体大小能够被最宽的成员的大小整除
,如不能则在后面补充字节
。
分析这个问题我们就不考虑编译器可以指定对齐大小
的情况了。在32bit环境中,一般默认的对齐大小是4。