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

switch 语句的子句均应从属于某个 case 或 default 分枝

9.5.4 ID_switch_invalidStatement
目录 › next › previous

switch 语句的所有子句都应从属于某个 case 或 default 分枝,否则不会被执行。

示例:

switch (v)
{
    int i;    // Non-compliant
    i = 0;    // Non-compliant
case 1:
    ....
    break;
default:
    bar(i);   // Logic error, ‘i’ is not initialized
    break;
}

例中对变量 i 的声明和赋值不从属于任何 case 或 default 分枝,是无效语句。

参考

CWE-561 MISRA C 2012 16.1 MISRA C++ 2008 6-4-3
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.