游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1303|回复: 0

我的Cpp (三) - 空类/结构内存占用情况分类:默认栏目

[复制链接]

4

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
QQ
发表于 2008-7-21 23:24:00 | 显示全部楼层 |阅读模式
  toophy原创, email : toophy@126.com, 工作几年积累的一点经验, 拿来夯实一下


例子:

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.

2008.7.21 22:42 作者:toophy 引用:0 | 收藏 | 评论:0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 22:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表