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

避免多余的括号

17.6 ID_redundantParentheses
目录 › next › previous

重复的或与优先级无关的括号使代码显得繁琐,应去掉。

宏定义中的括号不受本规则限制。

示例:

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
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.