对于C和C ++,存在多种编译器,其中一些用于编译微控制器的程序。有没有一种方法可以限制我们的程序只在特定的编译器中编译?我猜想一定有一种使用预处理程序指令来执行此操作的方法。
答案 0 :(得分:0)
正如Matthieu Brucher在评论中说的那样,一些编译器供应商提供了宏,您可以ifdef
来检查是否在它们下进行编译。话虽这么说,但是有一种(尽管很丑陋的)方式可以限制C ++在特定的编译器下进行编译。
假设您想使程序不在clang
下编译,则可以执行以下操作:
#ifdef __clang__
#error
#endif
这样,如果您的代码是使用clang编译的,则由于定义了__clang__
宏而ifdef下的代码无法编译,因此它根本无法编译。