在gcc
中,如何檢查在編譯C程序的過程中定義了哪些預處理器,特別是定義了哪些標準或平臺特定的宏定義?在gcc中已經定義了哪些C預處理器宏?
回答
預定義的宏取決於標準和編譯器實現它的方式。
對於GCC:http://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html
爲Microsoft Visual Studio 8:http://msdn.microsoft.com/en-us/library/b0084kay(VS.80).aspx
此維基百科頁面http://en.wikipedia.org/wiki/C_preprocessor#Compiler-specific_predefined_macros列出瞭如何在一些預定義宏傾倒
只是爲了記錄答案:gcc -dM -E - dev/null – 2009-07-27 06:09:05
程序可以定義一個宏一個 點,稍後刪除該定義,然後在此之後提供不同的 定義。因此,在 程序中的不同點,一個 宏可能有不同的定義, 或根本沒有定義。
一般對於宏來說是正確的,但問題是關於預定義的宏 – CsTamas 2009-07-27 06:12:35
編譯器和平臺的特定組合的預定義宏的可能來源是Sourceforge的Predef project。他們試圖維護所有平臺上所有C和C++編譯器中所有預定義宏的目錄。實際上,他們已經涵蓋了GCC的一些平臺,以及其他一些編譯器。
他們通過認真閱讀文檔以及一個shell腳本來實現這一目標,該腳本能夠指出哪些宏是預先定義的難題:嘗試它們。我的理解是,它實際上會嘗試每個可以在編譯器和/或預處理器的可執行映像中找到的字符串,以查看它是否具有預定義的含義。
他們會很高興地將他們尚未擁有的任何信息添加到他們的數據庫中。
- 1. gcc爲不同的SPARC處理器預定義了哪些宏?
- 2. C預處理器宏定義宏
- 3. C預處理器定義/宏
- 4. 用SCons定義C++預處理器宏
- 5. 自定義gcc預處理器
- 6. GCC轉儲預處理器定義
- 7. 預處理器爲m68k定義和宏?
- 8. 通過cmake定義預處理器宏
- 9. 定義一個預處理器宏
- 10. C預處理器宏
- 11. C++定義預處理器
- 12. C++預處理器定義
- 13. 如何使用GNU C預處理器預定義的宏?
- 14. 測試宏內是否定義了預處理器符號
- 15. GCC預處理器
- 16. 定義在Xcode目標預處理宏
- 17. C:宏中的預處理器?
- 18. 預處理器宏
- 19. 自定義C++預處理器/類型宏
- 20. C預處理器測試多個宏的定義
- 21. GCC ARM彙編預處理宏
- 22. 如何確定foo.c中的哪些預處理器宏源自bar.h?
- 23. 如何在Xcode 4中定義預處理器宏?
- 24. 插入另一個預處理器宏的預處理器宏
- 25. Ruby RSS/Atom處理器知道我已經在Feed中處理了哪些項目
- 26. xcodebuild - 如何定義預處理宏?
- 27. YAML預處理器/宏處理器
- 28. 從iOS中的shell腳本中定義預處理器宏值
- 29. C預處理器 - 定義宏的不同取決於另一個宏
- 30. C預處理器宏替換
在gcc中,執行`gcc -dM -E - dev/null`。有一個類似的MSVC開關,但我不記得它。 – 2010-08-12 13:33:57