Misra C则的目标是提供强迫性且可靠的程序设计,尤其是用于开发嵌入式系统,防止编写安全漏洞和性能问题。Misra C规则涵盖了C言核心语法、编码风格和实践,因此是为提高代码质量而充满期待的核心组成部分。 Misra C背景和历史 Misra C起源可以追溯到1998,它是由UK用于防止嵌入式C言开发构建和行业安全性问题。它是一个...
MisraC规则最初由英国汽车行业部分提出,以防止汽车电子控制单元(ECU)的错误软件的发生。Misra C规则定义了一系列最佳实践,用于确保ECU的软件质量和可靠性。根据Misra C规则,ECU开发人员应遵守C语言的编码规则,包括明确的语句格式和控制结构,以及类型安全和函数使用的安全性。 Misra C规则包括了两个部分,一部分是核心...
根据该规则,程序员在编写代码时可以对MISRA规则进行屏蔽,即暂时忽略某些规则的检查,但是需要在代码中明确注释说明。 在进行MISRA-C规则的屏蔽检查时,有一些需要注意的地方。首先,需要保证规则的屏蔽是有明确的理由的,例如某些规则可能会因为特定的硬件平台、特定的需求或者特殊的设计模式而无法遵守。其次,在屏蔽规则时,...
权衡一下利弊,在涉及到数据类型转换的时候,与其花很大力气去区分一个隐式表达式是否在MISRA—C规则的“黑名单”中,还不如用强制转换符显式地标识出每个操作数的实际数据类型,这是最为稳妥的方法。总而言之,MISRA—C关于数据类型转换规则的中心意思,是要求程序员明确任意一个操作数的实际数据类型。 3小结 作为一名...
MISRA-C部分规则 Rule1.严格遵循ANSIC89标准,不允许任何扩展。 Rule3.如果要嵌入汇编语言,则必须将所有汇编语句包装在C函数里,而且这些函数中只有汇编语句,没有常规C语句。 Rule7.不得使用三元操作符(?:) Rule10.不得残留被注释掉的废代码。 Rule11.所有标识符不超过31字符。 Rule12.不同名空间中...
在QAC中进行MISRA C屏蔽检查,主要是为了确保代码符合MISRA C标准中定义的一系列规则。这些规则可能包括但不限于以下几个方面: 强制类型转换规则:MISRA C标准对强制类型转换有严格的要求,QAC会检查代码中是否存在不安全的类型转换。 指针使用规则:MISRA C标准对指针的使用有一系列限制,例如不允许指针运算、不允许函数指...
MISRA C 2012关于括号使用的规则主要如下: 1.在宏的参数中不应出现类似预处理指令的符号。 2.由宏参数扩展产生的表达式应用括号括起来。 3. if或elif预处理指令的控制表达式应赋值为0或1。 4. if或elif中控制表达式使用的标识符在赋值前应被define。 5.预处理器操作符不应使用。 6.宏参数在紧随后后续不得有...
1. 规则1:源文件 MISRA C:2012规则要求每个源文件应该是一个完整的、独立的模块,其内容应该尽可能简洁、清晰。每个源文件应该包含一个独立的头文件,用于声明全局变量和函数原型。 2. 规则2:注释 MISRA C:2012规则要求在代码中添加注释来解释代码的意图和功能。注释应该清晰、简洁,并且应该放置在代码之前而不是代码...
现在很多的编译器已经集成对MISRA C的规则检查,但可以自己选择,也可以不检查,如果你的代码强制要求...
MISRA C C AMD- -2 2 规则 1 标准:MISRA C 2012 规则 ID 说明 类别 COVERITY支持 指令 1.1 应该记录并了解程序输出依赖的任何实现定义行为。 必需 否 指令 2.1 所有源文件应该在没有任何编译错误的情况下编译。 必需 否 指令 3.1 所有代码都必须能按照记录的要求进行跟踪。 必需 否 指令 4.1 应该最大限度...