诊断指令
来自 cppreference.cn
显示给定的错误消息并使程序格式错误,或显示给定的警告消息而不影响程序的有效性(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 !!
[编辑] 参考
- C23 标准 (ISO/IEC 9899:2024)
- 6.10.5 错误指令 (p: 待定)
- 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++ 文档,关于 诊断指令
|