基本要求
1.1 程序結構清析,簡單易懂,單個函數的程序行數不得超過100行。
1.2 打算干什麼,要簡單,直接了當,代碼精簡,避免垃圾程序。
1.3 盡量使用標准庫函數和公共函數。
1.4 不要隨意定義全局變量,盡量使用局部變量。
1.5 使用括號以避免二義性。
2.可讀性要求
2.1 可讀性第一,效率第二。
2.2 保持注釋與代碼完全一致。
2.3 每個源程序文件,都有文件頭說明,說明規格見規范。
2.4 每個函數,都有函數頭說明,說明規格見規范。
2.5 主要變量(結構、聯合、類或對象)定義或引用時,注釋能反映其含義。
2.7 常量定義(DEFINE)有相應說明。
2.8 處理過程的每個階段都有相關注釋說明。
2.9 在典型算法前都有注釋。
2.10 利用縮進來顯示程序的邏輯結構,縮進量一致並以Tab鍵為單位,定義Tab為 6個字節。
2.11 循環、分支層次不要超過五層。
2.12 注釋可以與語句在同一行,也可以在上行。
2.13 空行和空白字符也是一種特殊注釋。
2.14 一目了然的語句不加注釋。
2.15 注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。
2.16 注釋行數(不包括程序頭和函數頭說明部份)應占總行數的 1/5 到 1/3 。
3. 結構化要求
3.1 禁止出現兩條等價的支路。
3.2 禁止GOTO語句。
3.3 用 IF 語句來強調只執行兩組語句中的一組。禁止 ELSE GOTO 和 ELSE RETURN。
3.4 用 CASE 實現多路分支。
3.5 避免從循環引出多個出口。
3.6 函數只有一個出口。
3.7 不使用條件賦值語句。
3.8 避免不必要的分支。
3.9 不要輕易用條件分支去替換邏輯表達式。
4. 正確性與容錯性要求
4.1 程序首先是正確,其次是優美
4.2 無法證明你的程序沒有錯誤,因此在編寫完一段程序後,應先回頭檢查。
4.3 改一個錯誤時可能產生新的錯誤,因此在修改前首先考慮對其它程序的影響。
4.4 所有變量在調用前必須被初始化。
4.5 對所有的用戶輸入,必須進行合法性檢查。
4.6 不要比較浮點數的相等,
如: 10.0 * 0.1 == 1.0 , 不可靠
4.7 程序與環境或狀態發生關系時,必須主動去處理發生的意外事件,如文件能否邏輯鎖定、打印機是否聯機等。
4.8 單元測試也是編程的一部份,提交聯調測試的程序必須通過單元測試。