MISRA C:2012 Rule­-15.4解析

2025-04-05 13:44:11

MISRA-C:2012 规则适用于消息 0771:Rule-15.4(建议)对任何迭代语句至多只应有一条break 语句或goto 语句用于循环的结束

规则

1、规则与等级对应关系(QAC)

MISRA C:2012 Rule­-15.4解析

2、[0771]用于中断循环语句的'break' 语句超过1个

MISRA C:2012 Rule­-15.4解析

3、用于中断循环语句的'break'语句超过1个,例如:'wh坡纠课柩ile'循环语句、'稆糨孝汶;do ... while'循环语句或者'for'循环语句。如果同一个循环中使用了多个'break'语句,那么代码的结构会变得危险。

官方示例

1、/*PRQA S 2017,3408,3447 ++*/extern int x;extern 坡纠课柩int y;extern int z;extern void foo(int n){ while (n > 0) { --n; if (n == x) { break; /* Message 0769 */ } if (n == y) { break; /* Message 0771 */ } if (n == z) { break; /* Message 0771 */ } }}

MISRA C:2012 Rule­-15.4解析

修改举例

1、违反规则的例子

MISRA C:2012 Rule­-15.4解析

2、修改后

MISRA C:2012 Rule­-15.4解析
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢