通过实现定义的宏识别clang,gcc和tcc

PSk*_*cik 6 c macros gcc clang tcc

我使用clang,, gcctcc,我希望能够区分共同标题中的三个.

从他们的宏观转储来看,我预计宏的存在 __clang__将唯一地识别铿锵声.

我无法获得宏转储tcc($compiler -x c -E -dM /dev/null在其情况下不起作用).

什么是唯一标识gcc(可能还有tcc)的宏(如果有的话)?

250*_*501 7

使用__TINYC__来检测tcc 1.

此StackOverflow问题解释了gcc和clang的检测:检测gcc而不是msvc/clang与宏


1(引自:http:
//bellard.org/tcc/tcc-doc.html#SEC9 )__TINYC__是一个预定义的宏,表示您使用TCC.