知识点:内存对齐

        内存对齐是指将数据存储在内存中时,按照一定的规则让数据排列在规定的地址上,以提高数据访问的效率和速度。

        在C++中,结构体内部的每一个成员变量都需要存储到内存中,因此需要进行内存对齐以保证内存的访问效率。

        内存对齐规则如下:

  1. 每个成员变量按照其自身所占用的字节数对齐。
  2.  如果结构体的大小不是某个字节对齐周期的倍数,则自动填充字节使得结构体大小为对齐周期的倍数。
  3.  结构体的首地址要和对齐周期的倍数相同。(内存首地址为对齐周期的倍数)

        对齐周期指的是数据类型的大小,例如int类型大小为4字节,则以4字节为对齐周期进行内存对齐。

        填充字节取决于对齐周期,如果对齐周期小于结构体内最大数据类型的大小,则以对齐周期为准实现内存对齐;如果对齐周期大于结构体内最大数据类型的字节大小,则对齐周期失去作用,此时对齐周期为结构体内最大字节类型大小。

 详细可阅读参考内容。

参考内容

快速理解内存对齐以及#pragma pack

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值