结构体对齐原则
无论是数据类型自身 或 结构体成员自身 或 结构体自身 都将按自身对齐值和指定对齐值中小的那个值进行对齐
注(引自:https://blog.csdn.net/zhanghow/article/details/55262988):
- 数据类型自身的对齐值: 对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节;
- 结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值;
- 指定对齐值:#pragma pack (value)时的指定对齐值value,32位机器默认为4,64位机器默认为8;
- 数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。
参考文档
- https://blog.csdn.net/zhanghow/article/details/55262988
struct 字节对齐详解 - https://blog.shengbin.me/posts/gcc-attribute-aligned-and-packed
GCC中的aligned和packed属性 - https://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html
Specifying Attributes of Types