如何抑制有关 C++ 中未使用变量的警告?

Posted

技术标签:

【中文标题】如何抑制有关 C++ 中未使用变量的警告?【英文标题】:How to suppress warnings about unused variables in C++? 【发布时间】:2012-08-06 23:32:24 【问题描述】:

如何抑制编译器生成的关于 c++ 程序中未使用变量的警告?

我正在使用 g++ 编译器

【问题讨论】:

“怎么可能?”为什么要这样做? 通过使用它们?如果一个变量没有被使用,为什么你不能删除它的定义呢?您可能对此有一个很好的答案,和/或该答案可能会影响最佳使用方法。 我会看看 -W 标志选项。 如果你想让它脱颖而出,还有__attribute__((unused)) 我会亲自初始化变量。 【参考方案1】:

将强制转换为 void:

int unused;
(void)unused;

【讨论】:

强制转换为void 是将变量标记为used但没有副作用的惯用方式。 +1 在条件部分使用给定变量时特别有用(例如,仅在某些调试日志中使用的函数参数)【参考方案2】:

使用-Wno-unused-variable 选项编译。

请参阅GCC documentation on Warning Options 了解更多信息。

-Wno-__ 选项关闭由-W__ 设置的选项。这里我们关闭-Wunused-variable

此外,您可以将__attribute__((unused)) 应用于变量(或函数等),以逐个消除此警告。感谢Jesse Good 提及这一点。

【讨论】:

【参考方案3】:

为了删除这些警告,我制作了一个可以在整个项目中使用的

#define UNUSED(x) (void)(x)

【讨论】:

以上是关于如何抑制有关 C++ 中未使用变量的警告?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse/PyDev 中抑制“未使用的变量”警告

如何抑制字段或局部变量的 FindBugs 警告?

Clang 没有报告 C++ 中未初始化的变量?

选择性地抑制未使用 lambda 的“未使用变量”警告

Java中@SuppressWarnings注解可以使用的参数列表

抑制 OpenGL 运行时警告