内存对齐
- 什么是内存对齐
- 编译器为每个“数据单元”安排在某个合适的位置上
- C、C++ 语言非常灵活,它允许你干涉“内存对齐”
- 为什么要对齐
- 性能原因:在对齐的地址上访问数据更快
- 如何对齐
- 第一个数据成员放在 offset 为 0 的位置
- 其它成员对齐至
min(sizeof(member), #pragma pack)
的整数倍 - 整个结构体也要对齐,结构体总大小对齐至各个成员中最大对齐数的整数倍
先看一个示例程序
1 |
|
一个程序学徒
min(sizeof(member), #pragma pack)
的整数倍先看一个示例程序
1 |
|