0

我正在运行静态代码分析并发现警告。

对于下面的代码片段,我收到代码中指定的警告。是否有解决方法来实现以下代码来解决警告?

int foo(bool cond)
{
    int var = 0; // Value of "var" never used after initial
    if(cond){
       var = 10; // Value of "var" never used after assignment
    }
    else{
       var = 20; // Value of "var" never used after assignment
    }
    return var;
}

void main(){
    cout << foo(true);
    return;
}
4

1 回答 1

1

显而易见的事情是删除最初的死分配:

int foo(bool cond)
{
    int var; // Declare, but don't initialise
    if (cond) {
       var = 10;
    } else {
       var = 20;
    }
    return var;
}

或者(更好),完全消除变量:

int foo(bool cond)
{
    return cond ? 10 : 20;
}
于 2021-02-23T12:43:49.053 回答