vs2008 查看类在内存分布结构的方法

本文介绍了如何使用Visual Studio 2008的未公开编译选项/d1reportSingleClassLayout来查看类在内存中的分布结构,特别是对于涉及继承的类。通过在VS2008的命令提示符中输入特定命令,可以显示单个类或整个文件中所有类的内存布局。
摘要由CSDN通过智能技术生成

写程序一直想看内存里数据是怎么分配的,尤其是类的内存结构,尤其当设计到继承的时候。其实微软有一个未正式发布的编译选项 /d1reportSingleClassLayout

话不多说,下面描述具体使用方法:

这个编译选项有2种形式:/d1reportSingleClassLayout/d1reportAllClassLayout 。前者是查看单个类,后者是查看文件中所有类的结构。

比如我想看某个文件类的结构,比如Test.cpp,首先在vs2008工具栏的Tools下找到Visual  Studio 2008 Command Prompt,点击,出现如图所示命令框:

假设Test.cpp的路径为D:\Test.cpp,里面有个类叫D,然后输入:cl  -d1reportSingleClassLayoutD D:\Test.cpp,这里要注意Layout后面的那个D是Test.cpp中的一个类的名字,

回车就会出现类的结构,以我的为例



类A和D的代码如下:

class A
{
public:
	int a;
	void af();
	void virtual vaf(); 
};
void A::vaf(){printf("vaf\n");}
void A::af(){printf("af\n");}

class D :virtual public A
{
	int d;
	void df();
	void virtual vdf();
};
void D::vdf(){printf("vdf\n");}
void D::df(){printf("df\n");}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值