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 

意見回饋