避免多余的括号
17.6 ID_redundantParentheses
重复的或与优先级无关的括号使代码显得繁琐,应去掉。
宏定义中的括号不受本规则限制。
示例:
a = 1 + (p[0]); // Non-compliant
a = 2 + (p->n); // Non-compliant
a = (fun(x)); // Non-compliant
a = ((u + v)) * w; // Non-compliant
例中括号均作用于“后缀表达式”,与优先级无关。可参见 ID_nonPostfixSubCondition 对“后缀表达式”的说明。
应去掉多余的括号:
a = 1 + p[0]; // Compliant
a = 2 + p->n; // Compliant
a = fun(x); // Compliant
a = (u + v) * w; // Compliant
注意,设立本规则并不是为了提倡省略括号,如果可以更好地表达逻辑意义,或不确定运算符优先级时,应及时使用括号。
参考
MISRA C++ 2008 5-0-2