1
5
MISRA-C:2012有3个类别,所有指令和规则都按以下类别排序:
我个人对如何实施偏差的建议是,不要在个案基础上允许偏差。相反,应该为公司建立一个单独的编码标准文件——无论如何,您需要某种方式的文件来声明MISRA合规性。本文件应包含所有 公司范围 偏差。如果需要偏离,则必须更新公司范围内的文件。这实际上避免了你执行很多官僚程序,也避免了各种经验不足的程序员提出奇怪的想法,仅仅因为他们不理解MISRA-C规则的基本原理。 known defect in MISRA-C inherited from IEC 61508 (我想我是唯一一个真正费心研究需求来源的人)。你应该对这条规则提出永久性的偏离,因为这是胡说八道。就我个人而言,我将该要求重新表述为“函数不应该有多个返回语句,除非多个返回语句导致更可读的代码”。这涵盖了该规则的真正意图,即避免意大利面编程。
我认为这没有任何意义,似乎你在试图解决一个不存在的问题。根据MISRA的要求,您应该通过1)实际知道自己在做什么和2)使用静态分析工具来避免意外递归。
如果这还不够,那么可以将翻译单元一分为二,并为内部创建一个单独的h/c文件对。如果您有很长的源文件,其中包含很多函数,以至于程序员无法跟踪它们,那么您描述的风险主要是一个问题。这也很好地表明文件(和/或函数)应该分成几个部分。
|
2
2
规则15.5( 函数的末尾应有一个退出点 令人失望 这条规则。 规则8.2( )是一个 要求的 如果你愿意,你可以偏离指导原则,但这需要你证明这个决定是正确的! |
3
1
您可以遵循偏差过程,该过程的一部分是由合格的技术人员审查偏差。偏差可以涵盖个别不合规情况,也可以是项目范围内的偏差。
我认为,充其量也应该对每一项违规行为进行审查。在某些情况下,您的推理,例如,深度嵌套可能无法读取/无法维护,必须通过一个问题来权衡:为什么它们一开始就那么深?换句话说,可能函数做得太多了,需要分解成更小的模块。
|
Ankit Shah · 空指针问题 6 年前 |