在很多*nix环境的代码中,包含了__linux__,或者__GNUC__等字符串。这些字符串实际上为编译器预先定义的宏。可以通过如下命令,显示预处理时定义的宏。
"touch 1.h" "gcc -E -dM 1.h"
其中有个不错的连接,介绍了不同编译器的宏定义:
http://sourceforge.net/p/predef/wiki/Home/
也可以参考gcc预处理选项-dCHARS:
http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html