switch 语句的条件表达式不应为 bool 型
9.5.8 ID_switch_bool
如果条件表达式为 bool 型,应改用 if-else 语句使代码的结构更清晰。
示例:
void foo(bool b)
{
switch (b) // Non-compliant
{
case true:
....
break;
case false:
....
break;
}
}
应改为:
void foo(bool b)
{
if (b) // Compliant
{
....
}
else
{
....
}
}
参考
MISRA C 2004 15.4
MISRA C 2012 16.7
MISRA C++ 2008 6-4-7