内存对齐和补齐

 

对齐:是针对单个成员变量的;

补齐:是针对摆放的所有成员变量的整体而言要对齐;

//4字节的对齐粒度

//8字节的对齐粒度

#pragma  pack(8)       // #pragma pack(n) /* n = 1, 2, 4, 8, 16 */

struct     aa{

      int     ma;

     char   arr[5];

     double  cc;

};

---4字节int---||---5字节arr---3字节对齐||---8字节double---4字节补齐||

4 + 8字节(5 + 3) + 8 + 4 = 24字节  (总体应该是对齐粒度的整数倍)

未完待续,抽时间继续深挖......

问题01:为何要对齐和补齐?

问题02: 他们在计算机硬件和软件上会产生什么影响?

 

参考文献

1. https://blog.csdn.net/cyousui/article/details/17655051

2. https://baike.baidu.com/item/%E5%86%85%E5%AD%98%E5%AF%B9%E9%BD%90  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值