我使用clang
,gcc
和tcc
,我希望能够在公共标题中区分这三者。
__clang__
宏将唯一标识clang。
我无法使用tcc
进行宏转储($compiler -x c -E -dM /dev/null
在其情况下不起作用。)
什么是唯一标识gcc(可能还有tcc)的宏(如果有的话)?
答案 0 :(得分:7)
使用__TINYC__检测tcc 1 。
此StackOverflow问题中解释了gcc和clang的检测:Detect gcc as opposed to msvc / clang with macro
1 (引自:http://bellard.org/tcc/tcc-doc.html#SEC9)
__TINYC__是一个预定义的宏,表示您使用TCC。