C语言在安全系统中的MISRA-C规则详解:强制与建议

需积分: 15 21 下载量 7 浏览量 更新于2024-08-06 收藏 458KB PDF 举报
本篇文章主要讨论了《规则的形式-1000w大功率开关电源设计》中关于C语言在MISRA-C指南中的规则和应用。MISRA-C是由汽车工业软件可靠性协会(Motor Industry Software Reliability Association, MISRA)制定的一套针对C语言在关键系统中使用的指导原则,旨在提高软件的可靠性和安全性。 文章首先介绍了规则的分类,将规则分为“强制”和“建议”两类。强制规则是对程序员的硬性规定,共有121条,必须严格遵循,任何C代码如果违反这些规则,都需要有形式化的偏离并进行解释。而建议规则则是在一般情况下推荐遵守,尽管不是强制执行,但程序员应尽量遵循,除非有合理的理由不执行。 规则的组织按照C语言的不同主题展开,尽管可能存在一些重叠,但通常会根据其相关性进行排列。此外,文档中也提到了规则的冗余现象,即某些规则针对特定语言特性,这可能与文档其他地方的建议或禁止相冲突。在这种情况下,用户可以选择遵循建议规则,或者对强制规则进行偏离,但需要明确其合理性。 规则的形式被详细描述,每条规则都有唯一的序号,包括组别编号和内部顺序,便于查阅。规则以特定格式呈现,如“<序号>(<类别>): <规则文本>”,原始参考文献也需理解。 文章还概述了MISRA-C的背景,强调了在汽车工业中C语言的使用以及所面临的安全问题,以及MISRA-C的目标——提供一套标准来确保C语言在安全相关系统的可靠应用。它涵盖了语言的基本问题、未指出的问题、适用范围、预备知识、C++问题、自动代码生成、软件工程环境、编程语言和编码环境等多方面的内容。 规则部分详细列出了从环境、语言扩展到预处理指令等多个主题的具体规则,以及如何理解和遵循这些规则。此外,还包括了从早期版本的MISRA-C到MISRA-C:2004的规则变化、废弃规则、ISO标准的引用以及术语表等内容。 这篇文章是针对C语言在MISRA-C准则下的设计和开发规范,对于确保软件质量和安全性具有重要的指导意义。理解并遵循这些规则对于开发高质量、可信赖的嵌入式系统至关重要。