是否有用于抑制警告的gcc/Xcode杂注?

是否有用于抑制警告的gcc/Xcode杂注?,xcode,gcc,pragma,gcc-warning,Xcode,Gcc,Pragma,Gcc Warning,是否有类似于Java的@SuppressWarning注释的#pragma使gcc/Xcode抑制特定警告 我通常使用-Wall进行编译,但在某些情况下,我希望忽略特定的警告(例如,编写一些快速/脏代码只是为了帮助调试某些东西) 我不是在寻找“修复代码”的答案。。使用#pragma GCC system_header让GCC以一种非常特殊的方式处理代码,从而抑制任何非致命的#警告 记住,你只是在愚弄你的预处理器,而不是真正的编译器。抑制警告在大多数情况下可能是有害的。在gcc4.6及更高版本中,

是否有类似于Java的
@SuppressWarning
注释的
#pragma
使gcc/Xcode抑制特定警告

我通常使用
-Wall
进行编译,但在某些情况下,我希望忽略特定的警告(例如,编写一些快速/脏代码只是为了帮助调试某些东西)

我不是在寻找“修复代码”的答案。

。使用
#pragma GCC system_header
让GCC以一种非常特殊的方式处理代码,从而抑制任何非致命的
#警告


记住,你只是在愚弄你的预处理器,而不是真正的编译器。抑制警告在大多数情况下可能是有害的。

在gcc4.6及更高版本中,您可以使用pragma抑制特定的警告,并仅对特定的代码块进行抑制,即:

#pragma GCC diagnostic 
push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 
// Code that causes warning goes here
#pragma GCC diagnostic pop
push/pop用于保留代码处理前的诊断选项

这比使用“
#pragma GCC system_header
”来抑制所有警告要好得多。(当然,在较旧的gcc中,您可能会被
#pragma gcc system_头
方法“卡住”!)

以下是关于禁止gcc警告的一个很好的参考:

本页还介绍了如何使用
-fddiagnostics show option
找出控制特定警告的选项


当然,正如其他人提到的,修复所有警告的根本原因通常比抑制它们要好得多!然而,有时这是不可能的。

在理想情况下,我们甚至应该将所有警告都视为错误(使用-Werror)。这就是我能做的。在处理多个平台时会变得很困难,但除此之外,warning=error。是的,我也有-Werror。我的问题更多的是临时代码来帮助调试。可惜你不能在一个块中完成这项工作。在文件的其余部分这样做对我来说太危险了。