[英]Difference between preprocessor directives #error and #warning
在这两个预处理器代码中,它们的区别是什么,它们是如何使用的?
#error "¡ERROR GRAVISIMO!"
#warning "ABC está obsoleto. Use XYZ en su lugar."
#error
用于创建错误,从而阻止程序编译。 #warning
会产生编译器警告,但不会阻止程序编译。 以下是两个屏幕截图,说明了这一点:
错误:
警告:
请注意,在第一种情况下构建失败,在第二种情况下构建成功完成。
#error
是用来当你想从编译在一定的条件下,通常是因为该程序将无法正常工作,然后不停的程序, #warning
使用,如果该程序应该能够编译,但可能无法正常工作,你想帮助用户了解原因。
如果在 C++ 模式而不是 C 模式下编译程序,以下示例会产生错误或警告。 请注意,C++ 编译器会自动创建宏__cplusplus
。
错误:
#ifdef __cplusplus
#error This program isn't compatible with C++!
#endif
警告:
#ifdef __cplusplus
#warning You are compiling this as a C++ program, but it's recommended to compile it as a C program.
#endif
第一个代码用于不支持 C++ 的程序,第二个代码用于在 C++ 中可能有奇怪行为但仍然支持它的程序。 这些当然只是如何使用#error
和#warning
示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.