gpt4 book ai didi

c++ - 为 gcc 沉默 Wunused 变量

转载 作者:搜寻专家 更新时间:2023-10-31 01:36:32 35 4
gpt4 key购买 nike

这是我的代码:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
//__attribute__((unused))
static int myVar = 5;
#pragma GCC diagnostic pop

当使用 -Wall 编译时,我收到了警告。但是当我使用该属性时,我没有得到它。

为什么编译指示不起作用?我没有收到无法识别的标志的警告。其他 stackoverflow 线程将我指向 pragma 的东西......

使用 gcc(x86_64-posix-seh-rev0,由 MinGW-W64 项目构建)5.3.0

编辑:我在 gcc 文档中读到:

pragma GCC diagnostic kind option

Modifies the disposition of a diagnostic. Note that not all diagnostics are modifiable; at the moment only warnings (normally controlled by ‘-W...’) can be controlled, and not all of them. Use -fdiagnostics-show-option to determine which diagnostics are controllable and which option controls them.

但我仍然不明白如何知道是否可以用 pragma 抑制警告 - 即使我从输出中得到 [-Wunused-variable]...

最佳答案

您遇到的问题似乎是在处理完整个编译单元后发出有关未使用变量的警告,而不是在声明点发出。因此,在声明点上激活警告抑制根本没有任何作用,然后当您将其弹出时,警告在实际重要的点上不会被忽略;也就是说,在文件结束之后。

删除 pushpop 指令确实可以抑制警告。此外,当将 diagnostic ignored 指令移动到文件末尾时,警告仍然被抑制。

关于c++ - 为 gcc 沉默 Wunused 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531568/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com