第一种
#pragma pack(push, 1) // 先把当前对齐设置压栈,再设置为1字节对齐 struct S { char a; int an[1]; }; #pragma pack(pop) // 恢复先前压栈的设置
#pragma pack(push, 1)相当于
#pragma pack(push)
#pragma pack(1)
第二种
#pragma pack (n) //作用:C编译器将按照n个字节对齐。 struct S { char a; int an[1]; } #pragma pack () // 作用:取消自定义字节对齐方式