繁体   English   中英

预处理器指令 #error 和 #warning 之间的区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM