我的C++ (三) - 空类/结构内存占用情况

 

    toophy原创, email : toophy@126.com, QQ : 1033683566,工作几年积累的一点经验, 拿来夯实一下 :)

 

 

例子:

class CEmpty

{

}

struct SA

{

  CEmpty emp; // 真实空间是0字节

  int    nNum; // 真实空间是4字节

}

struct SB : public CEmpty

{

  int    nNum;

}

sizeof( SA ) -> 8 字节

sizeof( SB ) -> 4 字节

 

    对于 SA 的大小, emp虽然是空类, 没有任何空间要求, 但是为了访问emp给他配

 

置了1字节(占位), 那么sizeof(SA)应该是5字节啊, 但当前的对齐方式是 Zp8 , 所以

 

 

最少是4字节一个元素.

 

    对于 SB 的大小, 自然是因为 SB和CEmpty 已经合成, 是一个结构, CEmpty不是

 

SB的成员, 所以就不用占位. 当然 CEmpty如果有 virtual table , SB 就会变大,

 

其实 CEmpty的就是SB的, SB自然就也有 virtual table.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值