各大廠 C/C++ 編程規范詳解


來吧!各大廠知名規范體系~ 各有特點各有側重~

Google C++ Style Guide

Google C++ Style Guide[中文版],簡稱 GSG,谷歌的 C++ 編程規范,在國內有較大影響力,是企業級規范,對代碼的具體樣式有細致的規定,可直接采用。

由於歷史原因,GSG 較為保守,通過抑制語言特性以達到規避風險的目的。在早期尚未形成所謂“現代”編程思想的時候,此規范就已經面世並發揮作用了,其中的某些觀點可能與 C++ 官方不符,比如 C++ 創始人曾一度認為用常數 0 表示空指針比用 NULL 更好,而 GSG 的觀點與之相反,但歷史表明 GSG 的觀點是正確的,C++11 引入了專屬符號 nullptr 以表示空指針的值。

GSG 是實踐經驗的總結,也在不斷發展,目前已適應 C++17,對提升代碼可維護性有很高的參考價值。

C++ Core Guidelines

C++ Core Guidelines[中文版],簡稱 CCG,是 C++ 創始人對 C++ 代碼編寫的宏觀指導,屬於語言級規范體系,全面地闡述了現代 C++ 編程思想,以規則條款的形式明確地指出哪些是要避免的,哪些是值得提倡的,具有權威性,適合開發者學習。

由於其篇幅宏大細節繁多,可在相應代碼審計工具的支持下作為企業的編程規范和審計依據。

SEI CERT Coding Standards

SEI CERT Coding Standards,簡稱 CERT,是 CMU(Carnegie Mellon University)軟件工程研究所(SEI)發布的 C/C++ 編碼規范,專注於安全問題,適合與其他規范配合使用。

CERT 提供了較為全面的安全措施,如敏感信息的保護、注入或劫持的預防等等是值得所有開發人員學習的。

MISRA C/C++

MISRA C/C++,是由英國汽車產業軟件可靠性協會(Motor Industry Software Reliability Association)提出的 C/C++ 語言開發標准,在嵌入式開發領域有較高認可度,是行業級規范,企業可直接采用,但需購買相關文檔或技術支持。

MISRA 調強代碼靜態結構的合規性,規則較為嚴格,梳理了標准中“未定義”、“未聲明”、“實現定義”的情況,總結可導致不良后果的代碼形式並以此為規范依據,當前發行版本遵循 C99 和 C++03 標准。

High Integrity C++ Coding Standard

High Integrity C++ Coding Standard,歷史悠久的 C/C++ 規范體系,現歸屬於 Perforce Software, Inc.,提供獨特而有效的方法提升代碼質量並規避風險,被多種知名規范參考引用,而且還提供合規性審計軟件,但並不側重於安全問題,適合與 SEI CERT 等安全類規范配合使用。

華為 C&C++ 語言安全編程規范

華為 C&C++ 語言安全編程規范,闡述了編程時必須面對的最關鍵的 8 類問題(資源、安全、敏感信息等),適合企業直接采用。

此規范較為簡練便於記憶,所以適合在 Code Review 時人工對代碼展開相關檢查和討論,由於不是以網站形式發布的,這里就不提供鏈接了,可自行搜索相關文檔。

騰訊代碼安全指南

騰訊代碼安全指南,直接面向各種庫或 API 的使用,闡明存在的安全問題和解決方法,有較高的實用價值,除了 C 和 C++ 語言,還提供對 Java、Javascript、Go、Python 等語言的編程指導。

360 安全規則集合

360 安全規則集合[網頁版],融匯多種編程理念,提供適用於不同場景的規則供用戶選取,適用於桌面、服務端及嵌入式軟件系統,也屬於語言級規范體系。

安全規則集合側重違規代碼的量化界定,嚴格遵循 C11 和 C++11 標准,並兼顧 C18、C++17 以及歷史標准,可為不同方向的開發團隊提供靈活而統一的規范指導。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM