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

问题描述 投票:-3回答:1

代码:

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行的中断变得无法到达,因为在break语句之前有一个返回值。

PC Lint抛出错误“令牌断开时代码无法到达” Misra 2012 RULE 2.1。我该如何解决?

c switch-statement default break misra
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.