规则 14.2 对于 MISRA C 2012,for 循环的格式必须正确
Rule 14.2 A for loop shall be well-formed for MISRA C 2012
为什么我的 MISRA 规则分析工具报告可能违反此 for 循环?
例如
for(; i != 0 ; i = f(r) ) { int a = 9 + i; }
根据 MISRA C 2012 文档,for
语句的第三个子句应该是一个表达式,其唯一持久的副作用是修改循环计数器的值,并且它不得使用被修改的对象在 for
循环体中。这些限制也适用于 for
语句中调用的所有函数。
根据您提供的代码,我可以猜测,f(r)
函数调用包含副作用,例如修改全局变量或 r
参数。满足规则 14.2 文本中描述的所有其他要求。
为什么我的 MISRA 规则分析工具报告可能违反此 for 循环? 例如
for(; i != 0 ; i = f(r) ) { int a = 9 + i; }
根据 MISRA C 2012 文档,for
语句的第三个子句应该是一个表达式,其唯一持久的副作用是修改循环计数器的值,并且它不得使用被修改的对象在 for
循环体中。这些限制也适用于 for
语句中调用的所有函数。
根据您提供的代码,我可以猜测,f(r)
函数调用包含副作用,例如修改全局变量或 r
参数。满足规则 14.2 文本中描述的所有其他要求。