环境:Linux 32位系统,gcc编译器。
#pragma pack(n) 指定n字节对齐,有效对齐值为MIN(n, 结构体自身对齐值)。n的取值范围:1,2,4,8,16。
#pragma pack() 取消指定字节对齐,恢复默认对齐值——4。
__attribute__((aligned(n))) 指定n字节对齐,有效对齐值为MAX(n, 结构体自身对齐值)。n的取值范围:1,2,4,8,…。
__attribute__((aligned)) 指定16字节对齐。
__attribute__((packed)) 指定1字节对齐,结构体内的结构体成员若没被其修饰,则不受此限制。
注意:double(实际占8字节)和long double(实际占12字节)的自身对齐值为4。