避免出现复合赋值的可疑形式
10.4.3 ID_suspiciousCompoundAssignment
如下形式的复合赋值表达式(设 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);