【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的区别

image

 

参考

1. pack_cppreference;

posted on 2026-07-15 18:04  鹅要长大  阅读(4)  评论(0)    收藏  举报

导航