忘记恢复字节对齐,会带来极其严重的问题。。。。甚至还会导致代码段出现各种未知的Segmentation fault
(我就遇到了,直接导致某段代码经过编译就会crash,因为引用了这个忘了‘取消对齐设置’的有文件,直接导致代码段混乱了。。)
#pragma pack(push,1) // 是指把原来对齐方式设置压栈,并设新的对齐方式设置为1个字节对齐 struct OGWHeader { uint32_t MsgType; uint32_t BodyLength; }; #pragma pack(pop) // 恢复对齐状态
(ps: 或者用#pragma pack(n) 和 #pragma pack () 也可以。)
#pragma pack(pop) //不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态
#pragma pack(pop) // 不要忘了 恢复对齐状态