Mar
16
编译开关:-d1reportAllClassLayout
注意:-d1,这里的是数字“1”,而不是小写的“L”。汗,我自己就犯了这个错误,老是被忽略掉,而不起作用!
另外,不是自己生成一个文件,在控制台编译时,他直接输出在了控制台窗口。所以在控制台编译时,我使用了重定位到文件:
E:\Programming\c_cpp>cl classA.cpp -d1reportAllClassLayout > class.layout
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
E:\Programming\c_cpp>
这个开关的作用是:
它可以让 MSVC 编译器(译注:至少是 MSVC 6.0 以上的版本)生成一个.layout 文件,在该文件中包含有大量的极具价值的类的布局信息,包括基类在派生类中的位置,虚函数表,虚基类表(virtual base class table),类的成员变量等信息.
以下面的代码生成示例如下:
注意:-d1,这里的是数字“1”,而不是小写的“L”。汗,我自己就犯了这个错误,老是被忽略掉,而不起作用!
另外,不是自己生成一个文件,在控制台编译时,他直接输出在了控制台窗口。所以在控制台编译时,我使用了重定位到文件:
E:\Programming\c_cpp>cl classA.cpp -d1reportAllClassLayout > class.layout
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
E:\Programming\c_cpp>
这个开关的作用是:
引用
它可以让 MSVC 编译器(译注:至少是 MSVC 6.0 以上的版本)生成一个.layout 文件,在该文件中包含有大量的极具价值的类的布局信息,包括基类在派生类中的位置,虚函数表,虚基类表(virtual base class table),类的成员变量等信息.
以下面的代码生成示例如下:




没事,写个猜数的小游戏
C++类的实例的内存布局-阅《R
