MicroC-MXF 的 MISRA C 规则和违例

在使用 MicroC-MXF 来生成与 MISRA C 一致的代码时,必须遵循 MISRA C 规则。

用途

以下内容提供了已知规则违例的列表:
表 1. Rhapsody-C 7.5.3/mxf MisraC 规则和违例
MISRA 规则 MISRA 规则描述 Rhapsody-C 7.5.3/mxf 一致性状态 违例描述和备注
98 2004
93 (A) 19.7 (A) 函数和宏 不一致。 用于在某些不支持充分函数内联的环境中提供更好的性能。
96 (R) 19.10 (R) 在从 mxf 代码中调用的某些特定位置不一致。通过不使用此处的描述中列示的特定构造,可以避免此问题。 在 OXF 代码中的某些位置不一致。
参数封装:
  1. 参数用作数据声明的类型
  2. 参数用作 ## 的操作数(与 Misra 一致)
不适用 19.13 (A) 不得使用 # 和 ## 预处理器运算符。 不一致。 用于提高 .mxf 文件的灵活性。
以下内容提供了有关 Rhapsody-C 7.5.3/mxf MISRA C 一致性的更多描述和示例:
  • MISRA 规则 #93 (R):必须优先使用函数来代替类似于函数的宏。

    违例描述:使用宏代替函数更为高效,并且能够在某些不支持充分函数内联的环境中提供更好的性能。

    #define RiCGEN(INSTANCE,EVENT) 									\
       ((INSTANCE) != NULL) ? RiCReactive_gen(&((INSTANCE)->ric_reactive),	(EVENT), RiCFALSE): RiCFALSE 

反馈