是跨平台和跨编译器 #error 指令

Is #error directive crossplatform and crosscompiler

本文关键字:#error 指令 编译器 跨平台      更新时间:2023-10-16

我知道#error指令至少适用于GCC和MSVC

#if !defined(__cplusplus)  
#error C++ compiler required.  
#endif

但它是跨平台和跨编译器的吗?也许它是某些标准的一部分吗?

附言。因为即使查看GCC和MSVC手册中给出的示例,也可以看到差异。虽然它与引号或不适用于引号,但它给人一种悲伤的感觉,它可能以某种方式依赖于编译器。

海湾合作委员会示例

#error "Won't work on ..."   // quotes here

MSVC 示例

#error C++ compiler required.    // no qutes

是的。它是 C 和 C++ 中的标准预处理器指令。

引用: http://en.cppreference.com/w/cpp/preprocessor/error http://en.cppreference.com/w/c/preprocessor/error