1. 每一行代碼字符數不超過80。
2. 只使用空格,不使用Tab,每次縮進2個空格。
3. 返回類型和函數名在同一行,參數也盡量放在同一行。
函數看上去像這樣:
ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) {
DoSomething();
...
}
如果同一行文本太多,放不下所有參數:
ReturnType ClassName::ReallyLongFunction(Type par_name1,
Type par_name2,
Type par_name3) {
DoSomething();
...
}
4. 布爾表達式中邏輯操作符總是位於行尾。
if (this_one_thing > this_other_thing &&
a_third_thing == a_four_thing &&
yet_another & last_one) {
...
}
5. 預處理指令不要縮進,從行首開始。
6. 編寫類時,訪問控制塊的聲明次序依次是public, protected, private,均縮進一個空格。這些關鍵字後面不要保留空行。
7. 構造函數初始化列表放在同一行或者按四格縮進並排幾行。
MyClass::MyClass(int var) : some_var_(var), some_other_var_(var + 1) {
或者
MyClass::MyClass(int var)
: some_var_(var),
some_other_var_(var + 1) {
8. 命名空間不縮進
9. 水平/垂直留白的使用因地制宜,永遠不要在行尾添加沒意義的留白
關於google c++編程風格的實踐,可以觀摩google的開源工程google test,很有借鑒意義。