文件結構
|
重要性
|
審查項
|
結論
|
|
頭文件和定義文件的名稱是否合理?
|
|
|
頭文件和定義文件的目錄結構是否合理?
|
|
|
版權和版本聲明是否完整?
|
|
重要
|
頭文件是否使用了 ifndef/define/endif 預處理塊 ?
|
|
|
頭文件中是否只存放“聲明”而不存放“定義”
|
|
|
……
|
|
程序的版式
|
重要性
|
審查項
|
結論
|
|
空行是否得體?
|
|
|
代碼行內的空格是否得體?
|
|
|
長行拆分是否得體?
|
|
|
“{” 和 “}” 是否各占一行并且對齊于同一列?
|
|
重要
|
一行代碼是否只做一件事?如只定義一個變量,只寫一條語句。
|
|
重要
|
If 、 for 、 while 、 do 等語句自占一行,不論執行語句多少都要加“ {} ”。
|
|
重要
|
在定義變量(或參數)時,是否將修飾符 * 和 & 緊靠變量名?
|
|
|
注釋是否清晰并且必要?
|
|
重要
|
注釋是否有錯誤或者可能導致誤解?
|
|
重要
|
類結構的 public, protected, private 順序是否在所有的程序中保持一致?
|
|
|
……
|
|
命名規則
|
重要性
|
審查項
|
結論
|
重要
|
命名規則是否與所采用的操作系統或開發工具的風格保持一致?
|
|
|
標識符是否直觀且可以拼讀?
|
|
|
標識符的長度應當 符合“ min-length && max-information”原則?
|
|
重要
|
程序中是否出現 相同的局部變量和全部變量?
|
|
|
類名、函數名、變量和參數、常量的書寫格式是否遵循一定的規則?
|
|
|
靜態變量、全局變量、類的成員變量是否加前綴?
|
|
|
……
|
|
表達式與基本語句
|
重要性
|
審查項
|
結論
|
重要
|
如果代碼行中的運算符比較多,是否已經用括號清楚地確定表達式的操作 順序?
|
|
|
是否編寫太復雜或者多用途的復合表達式?
|
|
重要
|
是否將復合表達式與“真正的數學表達式”混淆?
|
|
重要
|
是否用隱含錯誤的方式寫 if 語句 ? 例如
( 1 )將 布爾變量直接與 TRUE 、 FALSE 或者 1 、 0 進行比較。
( 2 )將 浮點變量用“ ==”或“!=”與任何數字比較 。
( 3 )將 指針變量用“ ==”或“!=”與NULL比較 。
|
|
|
如果循環體內存在邏輯判斷,并且循環次數很大,是否已經將邏輯判斷移到循環體的外面?
|
|
重要
|
Case語句的結尾是否忘了加break?
|
|
重要
|
是否忘記寫 switch的default分支?
|
|
重要
|
使用 goto 語句時是否留下隱患? 例如跳過了某些對象的構造、變量的初始化、重要的計算等。
|