CWARN.NOEFFECT.SELF_ASSIGN
无效的自赋值
CWARN.NOEFFECT.SELF_ASSIGN 检查器可标记其中对应于一个变量的表达式赋值给自身的实例。
漏洞与风险
自赋值没有任何效果,因此可能无法达到设计意图。即使这不是一个错误,自赋值也可能预示代码中将出现更大的错误。
漏洞和修正代码示例 2
复制
class A {
int i;
char c;
bool b;
public:
A(int i, char c) {
this->i = i;
this->c = c;
this->b = b;
}
};
在此示例中,Klocwork 标记了第 9 行,该行展示了自赋值,但是未标记第 7 和 8 行,因为这两行的赋值表达式正确。