命名風格讓大腦模式匹配引擎**無需查閱宣告**即可識別實體類型(型別、變數、函式、常數、巨集)。一致性勝過個人偏好。
num_errors 好過 nerr、n。DNS、HTML),否則拼寫完整單字。.cc/.hmy_useful_class.cc、my-useful-class.h。避免系統標頭衝突(如 db.h)。類別定義成對出現:foo_bar.h/cc 對應 FooBar。內聯函式放 .h 或 -inl.h。
類別、結構體、typedef、列舉皆同:MyExcitingClass、UrlTableErrors、PropertiesMap。
my_exciting_local_variable、table_name。my_exciting_member_variable_。g_ 前綴區分。k 前綴 + PascalCaseconst int kDaysInAWeek = 7; 適用於所有編譯期常數(區域/全域/類內)。
AddTableEntry()、DeleteUrl()。num_entries()、set_num_entries()。google_awesome_project。
UrlTableErrors。OK、ERROR_OUT_OF_MEMORY。#define ROUND(x) ...、#define PI_ROUNDED 3.0。
| 情境 | 命名 | 參考對象 |
|---|---|---|
| 函式 | bigopen() | open() |
| 型別定義 | uint | 標準整型 |
| 結構/類別 | bigpos | pos |
| STL 風格容器 | sparse_hash_map | STL 命名 |
| 常數 | LONGLONG_MAX | INT_MAX |