2021-01-07

C/C++中字节对齐总结

1、首先不同硬件平台默认的“对齐系数”不同,对齐系数——存储数据时,几位为一个单位,例如32位机器是4位,64位机器是8位。

2、其次这个“对齐系数”在编译器中是可以用编程语言或者编译器相关设置更改的,例如(1)、#pragma pack(4)  (2)、#pragma pack()。第一行是设置对齐系数是4,第二行取消对齐系数的设置,还原为系统默认。

3、最后,记住几个准则,(1)结构体存储空间的总大小是内部最大数据类型的整数倍。(2)各个结构体内的成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍,(3)为了满足规则1和2编译器会在结构体成员之后进行字节填充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没的感情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值