首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C/C++ 程式碼排版風格指南:讓程式碼像書法一樣美觀易讀

     編輯:VC 教學

第 2 章 程式碼版式

版式雖不影響功能,但決定可讀性。優良版式追求清晰、美觀,是程式風格的重要構成。可將版式比喻為「書法」:好書法讓人一目了然、賞心悅目;差版式如螃蟹爬行,讓維護者苦不堪言。請務必練好程式「書法」,彌補大學教育的缺失。

2.1 空行:段落分隔的藝術

空行不佔記憶體,雖多費紙張但極值得。得體的空行讓版面清晰。

  • 規則 2-1-1:每個類別宣告後、每個函式定義結束後加空行。
  • 規則 2-1-2:函式本體內,邏輯緊密的語句不加空行,其餘處加空行分隔。
void Function1(...) { ... }
// 空行
void Function2(...) { ... }
// 空行
void Function3(...) { ... }
// 空行

while (condition) {
    statement1;
    // 空行
    if (condition) { statement2; }
    else { statement3; }
    // 空行
    statement4;
}

2.2 程式行:一行只做一件事

  • 規則 2-2-1:一行只定義一個變數或寫一條語句,便於閱讀與加註解。
  • 規則 2-2-2:if/for/while/do 獨佔一行,執行語句不得緊跟其後,一律加大括號,防止撰寫失誤。
// 風格良好
int width; int height; int depth;
x = a + b; y = c + d; z = e + f;
if (width < height) { dosomething(); }
for (init; cond; update) { dosomething(); }

// 風格不良
int width, height, depth;
x = a + b; y = c + d; z = e + f;
if (width < height) dosomething();
for (init; cond; update) dosomething(); other();

建議 2-2-1:盡可能在定義變數時同時初始化(就近原則),減少未初始化變數風險。

2.3 行內空格:讓關鍵字與運算子呼吸

  • 規則 2-3-1:關鍵字後留空格(if (、const int)。
  • 規則 2-3-2:函式名後不留空格緊接 (,與關鍵字區別。
  • 規則 2-3-3:( 向後緊跟,)、,、; 向前緊跟。
  • 規則 2-3-4:, 後留空格;; 若非行尾則後留空格(如 for (i=0; i<10; i++))。
  • 規則 2-3-5:二元運算子(= += >= <= + * % && || << ^ 等)前後加空格。
  • 規則 2-3-6:一元運算子(! ~ ++ -- &)前後不加空格。
  • 規則 2-3-7:[] . -> 前後不加空格。
void Func1(int x, int y, int z); // 良好
void Func1 (int x,int y,int z);  // 不良
if (year >= 2000)                // 良好
if(year>=2000)                   // 不良
for (i=0; i<10; i++)            // 良好(緊湊時可適當減少空格)
for(i=0;i<10;i++)               // 不良
int *x = &y;                      // 良好
int * x = & y;                    // 不良
array[5] = 0;                    // 不要寫成 array [ 5 ] = 0
a.Function();                    // 不要寫成 a . Function()

2.4 對齊:大括號與程式區塊

  • 規則 2-4-1:{ 與 } 獨佔一行、同一欄位、與引用語句左對齊。
  • 規則 2-4-2:{} 內程式區塊在 { 右側縮進處左對齊。
// 良好
if (condition) {
    ...
} else {
    ...
}

// 不良
if (condition) { ...
} else { ...
}

巢狀 {} 使用縮進對齊。

2.5 長行拆分

  • 規則 2-5-1:程式行長度控制在 70-80 字元內。
  • 規則 2-5-2:長運算式在低優先序運算子處換行,運算子置於新行行首(突顯運算子),新行適當縮進。
if ((very_long_var1 >= very_long_var12)
    && (very_long_var3 <= very_long_var14)
    && (very_long_var5 <= very_long_var16)) {
    dosomething();
}

virtual CMatrix CMultiplyMatrix(CMatrix leftMatrix,
                                CMatrix rightMatrix);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved