如何在几行代码中禁用g ++中的所有警告

MKo*_*MKo 5 warnings g++ gcc-warning

如何在几行代码上禁用所有警告.可以使用GCC诊断功能禁用特定警告,但是所有警告都有一个标志.我试过这种方式,但它不起作用

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-wall"
// some code
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)

use*_*631 9

从这里:http://dbp-consulting.com/tutorials/SuppressingGCCWarnings.html

对于4.6或更高版本,您可以保存用户诊断标志的状态.您可以在导致虚假警告的行周围插入:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
    // Code that causes warning goes here
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)

为了实现所需的行为,您应该使用"-Wall"而不是"-Wdeprecated-declarations"(而不是"-wall" - 注意大写"W").

  • 使用-Wall而不是更具体的标签根本不起作用(至少在gcc> 8的情况下,所以我非常怀疑它曾经起作用过),只是将其留在这里... (2认同)

pee*_*ush 1

我认为 gcc -w filename.c 这样做
-w 标志是忽略警告

  • 当使用第 3 方标头时,其中包含大量警告,但您无权更改或修复它们,您可以通过用“警告禁用”代码包围标头来包含标头。 (7认同)