不影響功能,**決定可讀性**。好版式 = 一目了然、賞心悅目;差版式 = 螃蟹爬行、維護噩夢。**彌補大學教育缺失,極有必要**。
// 函數間空行
void Func1() { ... }
void Func2() { ... }
// 函數內部
while (cond) {
stmt1;
// 空行分隔邏輯塊
if (cond) { stmt2; }
else { stmt3; }
// 空行
stmt4;
}
空行不佔記憶體,列印紙張成本可忽略,**別吝嗇**。
if/for/while/do **獨佔一行**,執行語句**不可緊跟**,**無論單語句必加 {}** (防維護時漏加導致邏輯錯)。
// ✅ 良好
int width = 10;
int height = 10;
if (w < h) { doSomething(); }
// ❌ 差勁
int width, height, depth;
if (w < h) doSomething();
**就近初始化**:宣告即賦值,縮短「未初始化窗口期」。
int width = 10; // 定義並初始化
| 規則 | 對象 | 動作 |
|---|---|---|
| 2-3-1 | 關鍵字後 | 至少一空格 (if (, virtual ) |
| 2-3-2 | 函數名後 | **不加空格**緊跟 ( (與關鍵字區別) |
| 2-3-3 | ( 後 / ) , ; 前 | **緊貼**,不空格 |
| 2-3-4 | , 後 / ; 非行尾 | **加空格** (Func(a, b), for (i=0; i<10; ++i)) |
| 2-3-5 | 二元運算子 (= + - * / % && || << >> ^ 等) | **前後加空格** |
| 2-3-6 | 一元運算子 (! ~ ++ -- & 等) | **不加空格** |
| 2-3-7 | [] . -> | **不加空格** |
長 for/if 為緊湊可適當減空格:for(i=0;i<10;++i), if((a<=b)&&(c<=d))。
{ } **獨佔一行、同欄、與引用語句左對齊**。{} 內碼塊 **{ 右側一制表位左對齊** (縮進)。
// ✅ 良好
void Func(int x)
{
...
}
if (cond)
{
...
}
else
{
...
}
// ❌ 差
void Func(int x){ ... }
if (cond){ ... } else { ... }
巢狀 {} 以縮進層層對齊。
if ((very_long_var1 >= very_long_var2)
&& (very_long_var3 <= very_long_var4)
&& (very_long_var5 <= very_long_var6))
{
doSomething();
}
virtual CMatrix CMultiplyMatrix(CMatrix leftMatrix,
CMatrix rightMatrix);