天天看点

结构体内存对齐(涉及#pragma pack() 和 offsetof)

1.第一个成员在与结构体变量偏移量为0的地址处

2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处

对齐数 = 编译器默认的一个对齐数 与 该成员大小 比较取的较小值  

vs 默认是 8 , gcc没有默认对齐数-对齐数就是该成员大小

3.结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍