在函数参数中评估C表达式是否违反了MISRA C指南?



现在考虑在安全关键嵌入式软件中执行的以下代码,其中gcc_optimization_level的大小为Level2。假设一个函数,void foo(float v);被调用为foo(a/b);,其中ab也被调用为float。当调用函数foo时,是否评估C表达式a/b违反任何MISRA C指南?

ps:这个问题是根据上周弱表述的上一个版本修改的。现在这个问题确保了它是一个单独的问题,而不是一个家庭作业问题,希望不要引发意见。

只要类型正确,在MISRA C中没有什么可以阻止调用foo( a / b )

在MISRA C中,essential types的概念是试图为C语言引入更强的类型-这在MISRA C:2012的附录D中有详细说明,规则10。X准则是强制的。

同样,MISRA C中除了第4.2节"理解编译器"之外,没有任何内容讨论优化级别。和第5.3.1节"编译器配置";其中讨论了必要的知识(不详细说明任何指导方针)。这些章节现在构成了(可免费下载的)MISRA合规性的一部分。

免责声明:参见profile.

最新更新