诊断指令
来自 cppreference.cn
显示给定的错误消息,并将程序呈现为不合规的形式,或显示给定的警告消息,而不影响程序的有效性(自 C23 起)。
目录 |
[编辑] 语法
#error diagnostic-message |
(1) | ||||||||
#warning diagnostic-message |
(2) | (自 C23 起) | |||||||
[编辑] 解释
1) 遇到
#error
指令后,实现会显示消息 diagnostic-message 并将程序呈现为不合规的形式(编译停止)。2) 与 (1) 相同,不同之处在于程序的有效性不受影响,并且编译继续。
diagnostic-message 可以由多个单词组成,不一定用引号引起来。
[编辑] 注释
在 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 !!
[编辑] 参考文献
- C23 标准 (ISO/IEC 9899:2024)
- 6.10.5 错误指令 (p: TBD)
- 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++ 文档 关于 诊断指令
|