2011-12-15 22 views
4

可能重複:
C/C++ source file after preprocessing如何理解充滿宏的大型C/C++代碼?

有一天,我被分配一個任務來修復錯誤在一個大的C/C++項目VC++ 8下開發的問題是,這代碼實際上充滿了嵌套的宏。 明白這個代碼的最佳方法是什麼?任何建議表示讚賞。

+5

http://stackoverflow.com/questions/277258/c-c-source-file-after-preprocessing – 2011-12-15 21:38:43

+0

這不屬於*程序員*嗎? – bitmask 2011-12-15 21:47:29

+1

這不是一個確切的聯繫問題。 – Pubby 2011-12-15 21:48:50

回答

3

通過使用編譯器行選項/E,構建將輸出所有預處理器輸出到標準輸出。這個文件將包括所有擴展的宏,以及所有包含擴展內聯的宏。您需要找出添加此標誌的最佳方式,具體取決於您如何構建項目。通過輸出,您可以更好地瞭解宏的擴展情況,但將輸出追溯到哪個宏擴展它仍然會很棘手。但是,你應該能夠弄清楚。 Reference for the command line options for VS8.0 compiler

正如在評論中指出,這是一個重複,這裏是更好的答案:https://stackoverflow.com/a/277362/192896

3

我覺得你首先需要了解一下宏做的,然後試着去了解後的代碼做什麼宏被擴展。希望每個宏或者一小組宏都能夠從定義和/或註釋中找出某種意義。

雖然你可以通過預處理器運行代碼,但通常會給你一個相當無差別的質量(沒有評論),可能很難理解。