字节对齐
#pragma pack(n) : 以n字节对齐
#pragma pack() : 恢复默认对齐方式
IBM:
IBM可以通过-qalign编译选项指定对齐方式 ,但是#pragma pack覆盖掉它
#pragma pack(pop) 等同于 $pragma pack()。每次#pragma pack的设置会进栈,pop就相关于把最近一次的出栈
xlc有一套 #pragma options align 也可以指定对齐方式,如
#pragma options align=packed :相关于#pragma pack(1)
#pragma options align=reset:恢复到前一个#pragma options设置(对于$pragma pack无效)
#pragma options align=natual :设置为自然对齐方式
下面是公司代码的一个例子,我自己没有验证它的正确性:
#ifdef OS_HP
#pragma pack 1
#elif defined OS_IBM
#pragma options align=packed
#elif defined _WIN32
#pragma pack(push, 1)
#else
#pragma pack(1)
#endif