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

!、&&、|| 的子表达式应为 bool 型表达式

10.1.10 ID_nonBoolSubCondition
目录 › next › previous

如果 !、&&、|| 的子表达式均为 bool 型表达式,可使逻辑结构更清晰,有效避免隐式类型转换或运算符误用造成的问题。

示例(设 p 为指针,a、b、c 为整型变量):

if (!p)             // Non-compliant
if (a && b)         // Non-compliant
if (a || (b + c))   // Non-compliant

应改为:

if (p == NULL)                  // Compliant
if ((a != 0) && (b != 0))       // Compliant
if ((a != 0) || (b + c != 0))   // Compliant

相关

ID_nonBoolCondition ID_illBoolOperation

参考

MISRA C++ 2008 5-3-1 SEI CERT EXP20-C
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.