本章对第 7 章和第 8 章(本文档的主要章节)中的规范做了介绍。

6.1 准则分类

每个 MISRA C 准则都可以被归类为“规则”和“指令”。

指令是一种指导原则,无法提供执行检查合规性所需的完整描述。 为了能够执行检查,还需要其他信息,例如可能在设计文档或要求规范中提供的信息。 静态分析工具可能有助于检查是否符合指令,但不同的工具可能会对违规的内容进行广泛的不同解释。

规则是提供完整的要求描述的准则。 应该可以检查源代码是否符合规则而无需任何其他信息。 特别指出,静态分析工具应该能够检查是否符合第 6.5 节中描述的限制的规则。

第 7 章包含所有指令,第 8 章包含所有规则。

6.2 准则要求级别分类

每一条 MISRA C 准则都有一个“强制”,“必要”或“建议”属性类别,其含义如下所述。 除了这种基本分类之外,该文件没有给出也不打算暗示每个准则的重要性等级。 所有定义为“必要”的准则,无论是规则还是指令,都应被视为同等重要,所有“强制”和“建议”准则也应如此。

6.2.1 强制准则

声明符合本文档的C 代码应符合每项强制准则,且不允许有偏离。

***小贴士:*如果检查工具产生诊断消息,这并不一定意味着由于第 6.5 节中给出的原因违反了准则。

6.2.2 必要准则

声明符合本文件的 C 代码应符合所有必要准则,如果有不符合项,则应如第 5.4 节所述,有正式的偏差声明。

组织或项目可以有选择的将必要准则当做强制准则来执行。

6.2.3 建议准则

这些准则是建议执行。 然而,“建议”的地位并不意味着可以忽略这些条目,而是应在合理可行的范围内遵循这些条目。 建议准则不需要正式偏差授权,但如果不遵循正式偏离程序,则应制定替代安排以记录违规情况。

组织或项目可以有选择的将建议准则当做强制或必要准则来执行。

6.3 准则的组织原则