内存对齐的3大规则:
- 对于结构体的各个成员,第一个成员的偏移量是0,排列在后面的成员其当前偏移量必须是当前成员类型的整数倍
- 结构体内所有数据成员各自内存对齐后,结构体本身还要进行一次内存对齐,保证整个结构体占用内存大小是结构体内最大数据成员的最小整数倍
- 如程序中有#pragma pack(n)预编译指令,则所有成员对齐以n字节为准(即偏移量是n的整数倍),不再考虑当前类型以及最大结构体内类型
本文详细介绍了内存对齐的三大核心规则:成员变量的初始偏移量为0;后续成员的偏移量需为其类型的整数倍;以及结构体整体还需进行一次对齐,确保其大小为最大成员类型的整数倍。同时,文中还提到了如何使用#pragmapack预编译指令来改变这一默认行为。
925
7215

被折叠的 条评论
为什么被折叠?