我们的程序可以在编译时确定在哪个编译器中进行编译吗?

时间:2018-12-16 11:02:53

标签: c++ c compilation

对于C和C ++,存在多种编译器,其中一些用于编译微控制器的程序。有没有一种方法可以限制我们的程序只在特定的编译器中编译?我猜想一定有一种使用预处理程序指令来执行此操作的方法。

1 个答案:

答案 0 :(得分:0)

正如Matthieu Brucher在评论中说的那样,一些编译器供应商提供了宏,您可以ifdef来检查是否在它们下进行编译。话虽这么说,但是有一种(尽管很丑陋的)方式可以限制C ++在特定的编译器下进行编译。

假设您想使程序不在clang下编译,则可以执行以下操作:

#ifdef __clang__
#error 
#endif

这样,如果您的代码是使用clang编译的,则由于定义了__clang__宏而ifdef下的代码无法编译,因此它根本无法编译。