聯系電話:
+886 2 77182788
創提部落格
希望我們能與您分享和探討成長中的點點滴滴
開發人員需要瞭解的關於MISRA C:2025®的資訊
創提科技
2026/02/10
分享到
轉載自Perforce Software, Inc.
MISRA C:2025標準於2025年3月在德國紐倫堡舉辦的嵌入式世界大會上正式發佈。儘管此次更新相較前版內容更為精簡,但它在MISRA C:2023高效框架基礎上進行了重大政策調整、功能增強及新增指南,旨在進一步簡化開發可靠且穩健的安全關鍵型代碼流程。
MISRA C軟體發展指南旨在確保使用C語言編寫軟體的安全可靠。該指南包含開發人員需遵循的規則與指令,開發人員可借助Perforce靜態分析工具(如Perforce QAC和Perforce Klocwork)來檢測任何違反指南的行為。
在MISRA C:2025之前,MISRA C:2023是最後一個主要版本,共制定了221條指南,涵蓋C90、C99以及C11/C18標準。
雖然MISRA C:2025對現有指南的更新更多是屬於漸進式改進,但它為支援C標準的下個版本以及開發環境的更新奠定了基礎。
MISRA C:2025 同時涵蓋 C90、C99 及 C11/C18 標準;對現有指南進行合理化調整與重組以確保延續性;並新增指南至 MISRA C:2025,使有效指南總數達到 225 條。
MISRA C:2025採用了全新的滾動發佈開發模式,而非獨立的修訂檔,使開發人員能夠更有效地與文檔及其反覆運算版本進行交互。
新規則
MISRA C:2025新增了5條準則。其中較為令人注意的是第19.3條規則,該規則通過將單一變體成員的一致使用與更嚴格的活躍成員變更限制(可能存在安全隱患)分離,放寬了聯合體的使用限制。這條規則最初是一個全面性的規定,但如今對常規“安全”使用情形僅作建議性要求。
MISRA C:2025還包含其他新規則,包括關於聲明的規則,以及一項從核心類型系統中提取指標的規則,以增強其一致性。
規則變更
一些現有的規則已經被擴展。例如,指標轉換規則(規則 11.3、11.4、11.6)現在包括了“intptr_t”系列,同時在處理整數和位址的整數表示時有了更多的可能性。先前版本的指南對位址操作進行了全面禁止,而這對於某些低級系統功能(如指標標記)來說是必不可少的。
指南重組
MISRA C:2025 對部分準則進行了重組,將規則移入更合適的類別,並重新調整了規則與指導原則之間的定位。此次重組為下一版本的擴展奠定了堅實基礎。
介紹已刪除和已停用的規則
本次新版本首次引入了已刪除和已停用的規則。
已刪除的規則編號在未來版本中將不會被重複使用。因此,對於早期版本中觸發規則21.2(該規則已重新編號並因此從發佈版本中刪除)違規的工具,其含義與MSIRA C:2023中的先前含義完全一致,不存在任何歧義。
這標誌著一個重要的里程碑,因為MISRA現已認識到,隨著分析技術和審查理念的發展,並非所有歷史性強制要求都能持續提供價值。(例如,備受爭議的規則15.5在MISRA C:2025中已被廢止。)
新的“已停用”類別也允許用戶在必要時重新引入該規則。
MISRA 正在不斷審查其針對 C 和 C++ 語言的規則和指南。雖然每個版本的設計目標都是為了讓代碼更安全、更可靠,但開發者仍需理解這些規則,檢查代碼是否有違規,並持續監控代碼的 MISRA 合規性。
選擇合適的靜態代碼分析工具可加速實現MISRA合規性。Perforce靜態分析工具QAC和Klocwork能自動掃描代碼中的規則違規情況,即時識別不合規代碼,從而在代碼投入生產前提供修復違規問題的機會。
Perforce QAC新增的合規性模組可實現對MISRA C:2025標準的100%覆蓋,助您輕鬆滿足並完整記錄該標準的合規性要求。
即刻查看Perforce QAC MISRA C:2025合規模塊的實際運行效果。立即申請定制演示!
Jill Britton
Director of Compliance
Perforce Software
歡迎聯繫我們瞭解更多資料或申請試用