诊断指令
来自 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++ 文档 用于 诊断指令
|