c++ - 忽略警告 "-Wunused-result"

标签 c++ gcc gcc-warning

我是 c++ 新手。

我想忽略警告 -Wunused-result 我猜是因为 -Wall 标志而弹出的。

我在网上搜索了一下,发现这是我可以通过声明一个pragma 来忽略它。我对 pragma 了解不多,但它说我必须写 warning number 才能忽略它。

什么是 -Wunused-result 的警告编号,或者是否有任何其他方法可以忽略或禁用此特定警告?

代码:-

freopen("input", "r", stdin);
freopen("output", "a", stdout);

关于编译:-

warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]

我发现我需要声明类似的东西


#pragma warning(禁用:number_of_warning)

最佳答案

正如其他答案所说,这些警告通常是有充分理由的。

但是,如果您需要在 gcc 中抑制由 __attribute__ ((__warn_unused_result__)) 引起的警告,通常的简单转换为 void 将不起作用。

有效的是:

(void)!freopen("input", "r", stdin);

(void) 本身是不够的,根据 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425 是故意的 解决方法来自 comment 34在该错误报告中。

关于c++ - 忽略警告 "-Wunused-result",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576003/

相关文章:

c++ - Colstore 与 Rowstore 的内存算法

c++ - 没有来自 std::vector<Object *, std::allocator<Object *>>"to "Object *"的合适转换函数

C++:返回对象时不解构对象?

c++ - 函数名称之前的预期初始化程序

c++ - 迂腐的 gcc 警告 : type qualifiers on function return type

c - 为什么 GCC 不对无法访问的代码发出警告?

c++ - vector< pair<aStruct*,int>> 不可能?

c++ - gdb 无法监视在 for 循环内声明的变量

linux - crosstool-NG linux x86 32 位构建在 32 位虚拟机上失败,汇编程序消息

c - 如何解决gcc警告信息困惑的问题