c - 如何使我的代码符合 MISRA 2012 规则 2.1

标签 c switch-statement default break misra

代码:

switch(abc)
{
    case i_a:
        temp = adc(channel_1);
        return temp *(-1);
        break;  //Line 6

    case i_b:
        temp1 = adc(channel_2);
        return temp1;
        break;   //Line 11
    default:
        return 0;
}

第 6 行和第 11 行的中断变得无法到达,因为在中断语句之前有一个 return。

PC Lint 抛出错误“ token “中断”处无法访问代码 Misra 2012 RULE 2.1 。我该如何解决它?

最佳答案

删除break或重写代码,例如:

switch(abc)
{
    case i_a:
        temp = adc(channel_1);
        temp= temp * -1;
        break;

    case i_b:
        temp = adc(channel_2);
        break;

    default:
        temp= 0;
        break;
}
return temp;

关于c - 如何使我的代码符合 MISRA 2012 规则 2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59085479/

相关文章:

在没有 root 的 Linux 中检查用户名/密码

java - 如何使用 Switch 语句设置 ImageIcon

oop - 是否可以扩展结构中特征的默认方法实现?

sql - 需要添加约束 : date plus 10 days

c - 如何读取用户在 C 中输入的字符串?

c - 如何在 C 中更改/显示权限

swift - 在单个 Switch 语句中进行模式匹配和条件绑定(bind)

java - 如何从通用ArrayList中查找最小值、最大值和平均值

javascript - 我可以使用另一个 _.get 作为 lodash _.get 的默认值吗?

c - 有没有办法接收各种数据类型?