VS 使用cl檢視c 物件記憶體模型

2021-08-28 12:38:33 字數 695 閱讀 2989

編寫**如下,檔案命名為cpptest.cpp

class div;};

int main()

我使用的是win7 64位作業系統,vs2015,可以在開始->所有程式->visual studio 2015->visual studio tools中啟動vs2015開發人員命令提示,如下圖

或者開啟cl.exe程式的路徑,如我電腦上vs2015的路徑為

命令列格式為:cl [filename].cpp /d1reportsingleclasslayout[classname]

如檢視cpptest.cpp裡div的物件模型,那麼命令列如下

cl cpptest.cpp /d1reportsingleclasslayoutdiv

執行結果如下圖

使用CL編譯器選項檢視C 類記憶體布局 轉

今天查資料的時候發現 vs 編譯器 cl 的乙個編譯選項可以檢視 c 類的記憶體布局,非常有用。使用如下,從開始程式選單找到 visual stdio 2008 2005 command prompt,選擇 vs 的命令列工具,按如下格式使用 cl d1reportsingleclasslayout...

C 物件模型 記憶體布局

聯絡人 石虎暱稱 嗡嘛呢叭咪哄 一 概念 1 沒有繼承情況,vptr存放在物件的開始位置,以下是base1的記憶體布局 m idata 100 2.單繼承的情況下,物件只有乙個vptr,它存放在物件的開始位置,派生類子物件在父類子物件的最後面,以下是d1的記憶體布局 b1 m idata 100 b...

C 物件記憶體模型探索

實驗環境 ubuntu 18.04 64 bit gcc 7.3.0 g 7.3.0,編譯使用 m32選項啟用32位環境 實驗步驟 1 不含有虛函式的基類,如下 include class base private int i int main 執行結果 kevin kvm study temp g...