DK 長輩推薦 K&R Indent style(此連結也有其它的 Indent Style 可以比較), 慢慢使用後, 就漸漸喜歡上這個囉~
發現 PEAR 規定的 Coding Standards(這個有很詳細的說明和介紹), 看起來跟 K&R 也是一樣的. 🙂
詳細的應該就如網站上的範例, 在此直接將範例轉載過來:
int main(int argc, char *argv[]) { ... while (x == y) { something(); somethingelse(); if (some_error) { do_correct(); } else { continue_as_usual(); } } finalthing(); ... } if (x < 0) { puts("Negative"); negative(x); } else { puts("Non-negative"); nonnegative(x); }
在此只列幾個要點:
- 每個 Indent 都是空 4格, 所以 vim 可以在 .vimrc 加下面這四行:
- set expandtab
- set shiftwidth=4
- set softtabstop=4
- set tabstop=4
- function/class 的 "{" 是單獨一行的, 其它的 "{" 都是接在 "()" 後面("()" 後面記得要空一格): ex: while () {, if () { ...
- function 的 "()" 是緊連著 function name, 其它標準的 if/else/while .. 等, 與 () 間有一個空白, ex: function() (沒空格), eval() (沒空格), if () (有空格), while () (有空格)...
- ()內的參數, 若有 "," 隔開, 則 "," 後面要空一格, ex: foo($arg1, $arg2='')
- =,>,<,&&,||, == .. 等 判斷條件, 前後要空格, ex: if ($a > $b), $a = $b && $c ...
- 注意: ($a > $b) 這些括號與變數間是沒有空隔的.($a 與 "(", 和 $b 與 ")" 間是沒有空格的)
- 其它更詳細的, 就看上面的範例, 或者參考 PEAR Coding Standards 這篇有規範更多其它的, ex: 註解的寫法等等, 可以參考看看~ 🙂
各大公司、Project 的 Coding Style 參考
- WebKit - Code Style Guidelines
- Firefox Source Docs documentation - Coding style
- Chromium Projects - Coding Style
- Google C++ Style Guide
- LLVM Coding Standards
- Microsoft - .NET code style rule options - .NET