MISRA-C 是汽車、航空、醫療等安全關鍵領域公認的 C 語言編程標準。本文針對 MISRA-C:2004 標準,提煉 9 條高頻違規項與改進方向,助力嵌入式工程師編寫更安全、可維護的程式碼。
// 單行註釋,強制使用 /* ... */。確保跨編譯器相容性,避免 C89 環境編譯失敗。if ... else if 鏈必須以 else 收尾,處理預期外情況。防止邏輯遺漏導致未定義行為。static。限制連結可見性,避免符號衝突,利於靜態分析。return 點。簡化控制流,便於資源清理與測試覆蓋率統計。union 類型。消除類型雙關、記憶體佈局依賴等不可移植行為。int、short 等)必須以 typedef 重新定義寬度明確的別名(如 int16_t、uint32_t)。消除平台相關寬度假設,確保可移植性。types.h,統一類型別名,禁用原生基本類型遵循 MISRA-C 不僅是合規要求,更是構建高可靠嵌入式軟體的工程紀律。從這 9 點切入,能以最小成本消除最大比例的潛在缺陷。