使用VS 查看对象模型以及结构体内存对齐

使用VS 查看对象模型以及结构体内存对齐

主要使用下面一条语句查看

cl /d1 reportSingleClassLayoutXXX xxx.cpp
其中XXX为要查看的对象的名称,xxx为源文件的名称


//查看父类对象模型
cl /d1 reportSingleClassLayoutBase 666对象模型.cpp

//查看子类对象模型
cl /d1 reportSingleClassLayoutSon 666对象模型.cpp

//查看结构体对象模型
cl /d1 reportSingleClassLayoutMyStruct 666对象模型.cpp

实现步骤:

1、“开始”——>“Visual Studio”——>如下图开发人员工具
在这里插入图片描述

2、点进去,如下图
在这里插入图片描述
3、在VS中的项目中(例如:此例中项目名叫继承中的对象模型),点击右键,选中如下图
在这里插入图片描述
4、复制出项目所在路径,如:C:\Users\DELL\source\repos\继承中的对象模型

5、在开发人员工具界面输入:cd 项目路径
在这里插入图片描述
6、查看对象模型(其实是内存对齐信息)

(1)查看子类(名为Son)的对象模型
在这里插入图片描述

class Base {
public:
	int m_a;
protected:
	int m_b;
private:
	int m_c;
};

class Son : public Base {

public:
	int m_1;
};

说明:
m_a 0~3 4字节
m_b 4~7 4字节
m_c 8~11 4字节

(2)查看结构体(名为MyStruct)的对象模型

struct MyStruct
{
	int a;   //0-3  4字节
	char b;  //4    1字节
			//空:5-7    即\0
	float c; //8-11  4字节
	string s;  //不是基本数据类型,是一个封装的类
};

在这里插入图片描述

小结

VS 使用cl /d1 reportSingleClassLayoutXXX xxx.cpp可以查看类中成员变量/结构体变量的内存分配,也可以用来验证内存对齐。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值