代码:
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。我该如何解决?
例如,删除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;