【c++编程基础】字节对齐pack的理解
前言
本文记录c++11中使用pack进行字节对齐的理解。
理解pack
pack是编译器提供的预处理指令,是编译器提供的结构体内存布局控制指令,用来指定结构体成员的对齐方式,避免padding,使内存布局固定,常用于二进制文件格式和通信协议。工程中推荐push/pop,避免污染其他代。
使用方法
// 告诉编译器后面的结构体按照1字节对齐。 #pragma pack(1) // 恢复默认字节对齐。 #pragma pack() // 推荐使用push/pop #pragma pack(push,1) struct Header { }; #pragma pack(pop) // 恢复至默认字节对齐
与alignas的区别

参考
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
Simple is clean. Complex is clever.
Logic & Aesthetics
Seeking Ground Truth within the pixels.
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
Simple is clean. Complex is clever.
Logic & Aesthetics
Seeking Ground Truth within the pixels.
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
浙公网安备 33010602011771号