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