☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

避免出现复合赋值的可疑形式

10.4.3 ID_suspiciousCompoundAssignment
目录 › next › previous

如下形式的复合赋值表达式(设 a 和 x 为变量或表达式):

a += a + x;
a *= a * x;
a %= a % x;
a <<= a << x;
a >>= a >> x;

均为常见笔误,但在特定需求下也有其逻辑意义,故对这种表达式应给出可疑提醒。即使这类表达式没有逻辑错误,也应该换成普通赋值表达式以便提高可读性。

示例:

a += a + x;   // Rather suspicious

应改为:

a = a + x;
a = 2 * a + x;
a = a + (a + x);

参考

CWE-682
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.