【问题标题】:How to ignore all warnings in C如何忽略C中的所有警告
【发布时间】:2015-06-12 23:11:28
【问题描述】:

如何使用#pragma GCC ignore 忽略C 中的所有警告?

我试过#pragma GCC diagnostic ignored "-Wunused-variable",但它只能忽略特定类型的错误。我想忽略所有错误。

此帖子“how to disable warning in compiling c code?”的解决方案只能忽略特定类型的错误。

【问题讨论】:

  • 为什么-w 标志不起作用?在编译期间关闭警告。
  • 您为什么要忽略编译器告诉您的问题?当心——那是通往坏事的大门。
  • 嗯,如果你忽略错误,你的代码就不会构建?如果这是一个大型商业风格的项目,我希望永远不会遇到您正在构建的产品。忽略错误和警告几乎是目光短浅,闭上眼睛,这样你就看不到即将撞到你的迎面而来的汽车。
  • 要忽略警告,当它们出现时不采取任何行动..?
  • 你询问忽略所有警告然后你说你想忽略所有错误。它是哪一个?您可以通过gcc ... 2>/dev/null 忽略所有错误。幸运的是,忽略所有 错误 是不可能的。您能否更新您的问题以准确解释您想要做什么以及为什么?

标签: c


【解决方案1】:

简短的回答:使用“-w”忽略警告。你不能忽略错误。

中等答案:使用“#pragma GCC ignored -Wall”忽略此链接中列出的各种警告:http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas。使用“-w”忽略所有警告。你不能忽略错误。

长答案:https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html,其中包含有关所有警告/错误选项的信息。

【讨论】:

    【解决方案2】:

    如果您有一段关键代码,您应该只禁用那些实际弹出的警告,并且只针对给定的区域(如果您确实需要)。一个好的方法是:

    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wconversions"
    
    // well commented problematic code
    ...
    
    #pragma GCC diagnostic pop
    

    只需将conversions 替换为适当的警告即可。 push/pop 将确保您返回到 ignored 警告之前的状态。只需接受绝对要求。如有必要,请重复此操作,不要想多写几行,只是为了确保一些书写/复制的安全。

    警告是你的朋友。有时它们会告诉你一些你不想听到的东西,但它们是善意的,如果你尊重它们,你就会提高自己。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-27
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      相关资源
      最近更新 更多