当前位置:  开发笔记 > 编程语言 > 正文

忽略的后果是什么:警告:未使用的参数

如何解决《忽略的后果是什么:警告:未使用的参数》经验,为你挑选了3个好方法。

我正在研究一个C++项目,我注意到我们对未使用的参数有很多警告.

如果忽略这些警告会有什么影响?



1> Alex B..:

在以下情况下,具有未使用参数的函数可能存在真正的错误:

    有一个输出参数,它没有被分配或写入,导致调用者的值不确定.

    其中一个参数是回调函数指针,您必须调用它并忘记这样做.如果#ifdef函数中有很多s,可能会发生.

    声明一个具有相同名称的局部变量,该变量会影响参数,然后在函数中使用错误的值.

不使用输入参数可能是无害的,但是您可以通过将函数开头显式地标记未使用的输入参数void(适用于C和C++)来降低噪声以查看有用的警告:

(void)param1;

要么,

#define UNUSED(expr) do { (void)(expr); } while (0)
...

void foo(int param1, int param2)
{
    UNUSED(param2);
    bar(param1);
}

或者省略参数名称(仅限C++):

void foo(int param1, int /*param2*/)
{
    bar(param1);
}


顺便说一句,在Qt库中使用UNUSED宏的方法:它有一个Q_UNUSED,它完全相同,但没有`do..while`包装器.

2> Timbo..:

如果你有很多对你来说不重要的不重要的警告,你可能会忽略关于你刚才写的隐藏在它们中间的代码行的重要警告.


这是不忽视警告的一个非常重要的原因.可能是最重要的原因.

3> Johannes Sch..:

对于禁用警告的gcc特定方法,您可以使用__attribute__((unused))like

void foo(int a, int b __attribute__((unused))) {

}

忽略第二个参数.如果您的程序已经依赖于GCC技术,那么您可以使用该属性从该类警告中100%安全.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有