一千萬個為什麽

搜索

我可以用什麽預定義宏來檢測clang?

我正在嘗試檢測用於編譯源代碼的編譯器。我可以輕松找到預定義的宏來檢查MSVC或GCC(請參閱 http://predef.sourceforge.net/ 例如),但我找不到任何宏來檢查clang。

有人知道clang是否定義了像 __ CLANG __ 這樣的宏,以便知道當前正在編譯我的代碼的是什麽?

最佳答案

要獲取編譯器使用的所有預定義宏的列表,請使用以下命令:

clang -dM -E -x c /dev/null

你可以為gcc做同樣的事情。

轉載註明原文: 我可以用什麽預定義宏來檢測clang?