gpt4 book ai didi

c++ - cppcheck 的棘手情况

转载 作者:太空宇宙 更新时间:2023-11-04 14:40:44 26 4
gpt4 key购买 nike

我面临的情况是我需要 cppchecks 才能通过,但有时会变得很棘手。在这种情况下你通常会怎么做?例如。

#include<iostream>
using namespace std;
void fun1();
int fun2();
int main()
{
fun1();
}

void fun1()
{
int retVal;
if (-1 == (retVal = fun2()))
{
cout <<"Failure. fun2 returned a -1"<< endl;
}
}

int fun2()
{
return -1;
}

我们通常会看到像上面这样的代码。上述文件的 cppcheck 将给出如下输出 -

cppcheck --suppress=redundantAssignment --enable='warning,style,performance,portability' --inline-suppr --language='c++' retval_neverused.cpp Checking retval_neverused.cpp... [retval_neverused.cpp:13]: (style) Variable 'retVal' is assigned a value that is never used.

我不想为了 cppcheck 添加一些虚拟行打印 retVal。事实上,这可能是我抛出异常并且我不希望异常中有一些微不足道的东西作为 retVal 值的情况。

最佳答案

虽然 CppCheck 有点正确。你根本不需要 retVal 。直接检查 fun2 的返回值:if( -1 == fun2() )

顺便说一句,在条件表达式中分配变量是非常糟糕的做法。这使得在您打算键入 == 但实际上键入了 = 时更难发现拼写错误。

关于c++ - cppcheck 的棘手情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026758/

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