Jialong's Blog
沉潜 自由 追寻幸福
C程序字节对齐方式

默认字节对齐

int类型放在地址能被4整除的位置,short类型放在地址能被2整除的位置,char能放在任何位置。

结构体的对其满足以下原则:

  • 结构体变量的首地址能够被其最宽基本类型成员的大小所整除。
  • 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间填充字节。
  • 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员后填充字节。

#pragma pack()命令

改命令强制规定了成员的对齐方式,括号内为对齐的字节数。若括号内的内容为空,则为默认对齐。

改变默认对齐方式能够更加充分利用存储空间,但降低了计算机的读写速率,是一种以空间换事件的方法。


最后修改于 2021-12-14