内存对齐规则

  隔了很久,搞忘了对齐的规则,现在重新复习了下,记下来谨防以后又忘记。

  1、可以根据 #pragma pack() 设置对齐系数,且叫为n

  2、结构体中,对比每个成员变量自身的大小和n的大小。 取小的个为标准,把这个小的叫a吧,称为按a对齐

  3、每个变变量的起始地址需要为a的整数倍,不是整数倍的则补齐。

  4、最后这个结构体也要对齐,它占的大小是最大的一个变量 类型的 大小的整数倍,不是的补齐。加起来则是所占大小。

  5、uion中是算不对齐时,占最大内存的一个变量为内存总值(因为会有数组类型)为最大值, 但也需要对齐,占的总大小是最大的一个变量 类型的 大小的整数倍。所以不满足整数倍的补齐。

 

  http://leopard168.blog.163.com/blog/static/16847184420137910543475/ 这里有很多相关例子

  

转载于:https://www.cnblogs.com/wangrui-techbolg/p/3454231.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值