在gcc中,我如何检查在编译C程序时使用了哪些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
。在MSVC中也有类似的开关,但我记不清了。 - Joe D