905

5 分钟

#C 语言的预处理错误指令 #error 和警告指令 #warning

错误指令(#error)和警告指令(#warning)可以在编译时产生错误和警告。格式为:

#error "错误信息"
#warning "警告信息"

例如:

#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

创建于 2025/9/3

更新于 2025/9/3