对齐规则
- 结构体成员的内部偏移量要被这个成员的数据类型大小整除
-
整个数据结构的大小,必须是最大成员大小的整数倍,否则需要再末尾补充空白字节
-
结构体嵌套结构体,按照结构体展开之后的形式进行对齐
-
使用 pragma pack(n) 指定每个成员的起始地址,按照 n 来对齐,覆盖第一条规则。
注意,如果 n 比当前成员大小要大,则偏移量规则仍然取较小值。
-
不要对齐规则,pragma pack(1)
自定义对齐规则
// 覆盖以上第一条规则
#pragma pack(2)
整个数据结构的大小,必须是最大成员大小的整数倍,否则需要再末尾补充空白字节
结构体嵌套结构体,按照结构体展开之后的形式进行对齐
使用 pragma pack(n) 指定每个成员的起始地址,按照 n 来对齐,覆盖第一条规则。
注意,如果 n 比当前成员大小要大,则偏移量规则仍然取较小值。
不要对齐规则,pragma pack(1)
// 覆盖以上第一条规则
#pragma pack(2)
留言