错误指令(#error)和警告指令(#warning)可以在编译时产生错误和警告。格式为:
#error "错误信息"
#warning "警告信息"
#warning 是 C23 标准的新特性。例如:
#if defined(_WIN32)
#error "不支持 Windows 系统"
#elif defined(__unix__) && !defined(__linux__)
#warning "UNIX 系统的支持可能存在问题"
#endif
如果定义了 _WIN32,则产生错误:不支持 Windows 系统
如果定义了 __unix__ 而没有定义 __linux__,则产生警告:UNIX 系统的支持可能存在问题
C23 standard (ISO/IEC 9899:2024):
6.10.5 Error directive (p: TBD)
C17 standard (ISO/IEC 9899:2018):
6.10.5 Error directive (p: 126-127)
C11 standard (ISO/IEC 9899:2011):
6.10.5 Error directive (p: 174)
C99 standard (ISO/IEC 9899:1999):
6.10.5 Error directive (p: 159)
C89/C90 standard (ISO/IEC 9899:1990):
3.8.5 Error directive