DKP*_*DKP 2 c++ gcc gcc-warning
我是C ++的新手。
我想忽略警告-Wunused-result,我猜是由于-Wall标志而弹出的。
我确实在网上搜索,发现这是我可以通过声明一个来忽略它pragma。我没有太多的知识,pragma但是它说我必须写warning number才能忽略它。
什么是warning number的-Wunused-result,或者是有任何其他方式,我可以忽略或禁用此特定的警告?
码:-
freopen("input", "r", stdin);
freopen("output", "a", stdout);
Run Code Online (Sandbox Code Playgroud)
关于编译:
warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
Run Code Online (Sandbox Code Playgroud)
我发现我需要声明类似
#pragma warning( disable : number_of_warning )
tex*_*ell 10
正如其他答案所说,这些警告通常是有充分理由的。
但是如果你需要抑制由__attribute__ ((__warn_unused_result__))gcc引起的警告,通常的简单转换为 void 是行不通的。
什么工作是:
(void)!freopen("input", "r", stdin);
Run Code Online (Sandbox Code Playgroud)
(void)根据https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425
,仅凭这一点是不够的。解决方法来自该错误报告中的评论 34。
如果要忽略函数的返回值,则一种可移植的方式是将其标记void为:
(void) frepoen("input", "r", stdin);
Run Code Online (Sandbox Code Playgroud)
对读者和编译器都清楚地表明返回值确实不是必需的。
但是,如果重新打开文件(freopen),那么FILE *对文件的后续读取/写入操作是否不需要返回值()?
正如Striezel所指出的那样,对于stdin和stdout,尽管对于后续的文件操作而言,返回值不是必需的,但对于错误检查仍然可能是必需的。失败时,freopen返回NULL。
| 归档时间: |
|
| 查看次数: |
4435 次 |
| 最近记录: |