高質量C/C++程式設計指南總結(二)—— 檔案版式

墨小语發表於2024-07-14

1. 空行

  • 在每個類宣告之後、每個函式定義結束之後都要加空行。
  • 在一個函式體內,邏揖上密切相關的語句之間不加空行,其它地方應加空行分隔。

2. 程式碼行

  • 一行程式碼只做一件事情,如只定義一個變數,或只寫一條語句。這樣的程式碼容易閱讀,並且方便於寫註釋。
  • ifforwhiledo 等語句自佔一行,執行語句不得緊跟其後。不論執行語句有多少都要加{}。這樣可以防止書寫失誤。
  • 在定義變數的同時初始化該變數。

3. 程式碼行內的空格

  • 關鍵字之後要留空格。

constvirtualinlinecase 等關鍵字之後至少要留一個空格,否則無法辨析關鍵字。像 ifforwhile 等關鍵字之後應留一個空格再跟左括號‘(’ ,以突出關鍵字。

  • 函式名之後不要留空格,緊跟左括號‘(’ ,以與關鍵字區別。
  • (’向後緊跟, ‘)’ 、 ‘, ’ 、 ‘ ;’向前緊跟,緊跟處不留空格。
  • , ’之後要留空格。

Function(x, y, z)。如果‘ ;’不是一行的結束符號,其後要留空格,如 for (initialization; condition; update)。

  • 賦值運算子、比較運算子、算術運算子、邏輯運算子、位域運算子,如“ =”、 “ +=” “ >=”、 “ <=”、 “ +”、 “ *”、 “ %”、 “ &&”、 “ ||”、 “ <<,^”等二元運算子的前後應當加空格。
  • 一元運算子如“ !”、“ ~”、“ ++”、“ --”、“ &”(地址運算子)等前後不加空格。
  • 像“[]”、 “ .”、 “ ->”這類運算子前後不加空格。
  • 對於表示式比較長的 for 語句和 if 語句,為了緊湊起見可以適當地去掉一些空格。

for (i=0; i<10; i++)if ((a<=b) && (c<=d))

4. 對齊

  • 程式的分界符‘ {’和‘ }’應獨佔一行並且位於同一列,同時與引用它們的語句左對齊。
  • { }之內的程式碼塊在‘ {’右邊數格處左對齊。

5. 長行拆分

  • 程式碼行最大長度宜控制在 70 80 個字元以內。程式碼行不要過長,否則眼睛看不過來,也不便於列印。
  • 長表示式要在低優先順序運算子處拆分成新行, 運算子放在新行之首(以便突出運算子)。拆分出的新行要進行適當的縮排,使排版整齊,語句可讀。

6. 修飾符的位置

  • 將修飾符 * 和 & 緊靠變數名。

7. 註釋

  • 註釋是對程式碼的“提示”,而不是文件。註釋花樣要少。
  • 邊寫程式碼邊註釋,修改程式碼同時修改相應的註釋,以保證註釋與程式碼的一致性。不再有用的註釋要刪除。
  • 註釋應當準確、易懂,防止註釋有二義性。錯誤的註釋不但無益反而有害。
  • 避免在註釋中使用縮寫,特別是不常用縮寫。
  • 註釋的位置應與被描述的程式碼相鄰,可以放在程式碼的上方或右方,不可放在下方。
  • 當程式碼比較長,特別是有多重巢狀時,應當在一些段落的結束處加註釋,便於閱讀。

8. 類的板式

  • 建議採用“以行為為中心”的書寫方式編寫類。
    • public 型別的函式寫在前面,而將 private 型別的資料寫在後面,採用這種版式的程式設計師主張類的設計“以行為為中心”,重點關注的是類應該提供什麼
      樣的介面(或服務)。
    • private 型別的資料寫在前面, 而將 public 型別的函式寫在後面, 採用這種版式的程式設計師主張類的設計“以資料為中心”,重點關注類的內部結構。

相關文章