大纲
- vs中怎么查看c++ class的布局
- 额外的vs技巧
vs中怎么查看c++ class的布局
先搞个简单的代码例子:
#include <iostream>
class ClassA
{
public:
int a = 10;
};
int main()
{
auto cla = new ClassA();
delete cla;
system("pause");
return 0;
}
在vs
中有这么一个参数/d1 reportSingleClassLayout
,
reportSingleClassLayout
后紧跟随的是需要dump的类名称!
然后执行工程编译,就能在编译输出平台看到以下信息了!
1>class _s__RTTIBaseClassArray size(1):
1> +---
1> 0 | arrayOfBaseClassDescriptors
1> +---
1>class ClassA size(4):
1> +---
1> 0 | a
1> +---
有了以上这些,我们在学习c++的时候就能通过这种方式去了解c++的虚函数表之类的了!
额外的vs技巧
以前有说过使用g++
生成相应的预编译文件,汇编文件等,那么在这里就补充一下vs的;
预编译文件
运行或者编译后,在Debug
目录下可以看到一个以.i
结尾的文件,使用文本打开,看到就是预处理文件了!
注意开启了预编译到文件后,运行会提示link不到obj。
汇编
运行或者编译后,在Debug
目录下可以看到一个以.asm
结尾的文件,该文件就是汇编文件了!
如果已经按照前文开启了预编译到文件,建议关掉!
PREVIOUSc++关键词的简单说明