使用 CL 編譯器選項查看 C++ 類內(nèi)存布局 (轉(zhuǎn))
今天查資料的時候發(fā)現(xiàn) VS 編譯器 CL 的一個編譯選項可以查看 C++ 類的內(nèi)存布局,非常有用。使用如下,從開始程序菜單找到 Visual Stdio 2008/2005 Command Prompt,選擇 VS 的命令行工具,按如下格式使用:
>cl –d1reportSingleClassLayout[classname] test.cpp
而使用 –d1reportAllClassLayout 則可以查看源文件中所有類及結(jié)構(gòu)體的內(nèi)存布局。
其中,classname 為類名,-d1reportSingleClassLayout[classname] 之間沒有空格。編寫程序測試:
比較奇怪,加上 #include <iostream> 后,測試結(jié)構(gòu)體的時候就會出現(xiàn)很輸出,應(yīng)該是庫中的類,看起來真麻煩,所以這里去掉它。
測試類 TestClass: >cl Test.cpp /d1reportSingleClassLayoutTestClass