命名空间
变体
操作

诊断指令

来自 cppreference.com

显示给定的错误消息并使程序格式错误,或显示给定的警告消息而不影响程序的有效性(自 C23 起).

内容

[编辑] 语法

#error 诊断消息 (1)
#warning 诊断消息 (2) (自 C23 起)

[编辑] 解释

1) 遇到 #error 指令后,实现会显示消息 诊断消息 并使程序格式错误(编译停止)。
2)(1) 相同,只是程序的有效性不受影响,编译继续进行。

诊断消息 可以包含多个词语,不一定需要用引号括起来。

[编辑] 注释

在 C23 中标准化之前,#warning 已被许多编译器在所有模式下作为符合标准的扩展提供。

[编辑] 示例

#if __STDC__ != 1
#  error "Not a standard compliant compiler"
#endif
 
#if __STDC_VERSION__ >= 202311L
#  warning "Using #warning as a standard feature"
#endif
 
#include <stdio.h>
int main (void)
{
    printf("The compiler used conforms to the ISO C Standard !!");
}

可能的输出

The compiler used conforms to the ISO C Standard !!

[编辑] 参考资料

  • C17 标准 (ISO/IEC 9899:2018)
  • 6.10.5 错误指令 (p: 126-127)
  • C11 标准 (ISO/IEC 9899:2011)
  • 6.10.5 错误指令 (p: 174)
  • C99 标准 (ISO/IEC 9899:1999)
  • 6.10.5 错误指令 (p: 159)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 3.8.5 错误指令

[编辑] 另请参阅

C++ 文档 用于 诊断指令