C++/C 编程指南
—命名规则
第 3
章 命名规则
比较著名的命名规则当推 Microsoft
“
”
“
公司的 匈牙利 法,该命名规则的主要思想是 在变
”
量和函数名中加入前缀以增进人们对程序的理解 。例如所有的字符变量均以 ch 为前缀,
若是指针变量则追加前缀 p。如果一个变量由 ppch 开头,则表明它是指向字符指针的指针。
“
”
匈牙利 法最大的缺点是烦琐,例如
int i, j, k;
float x, y, z;
“
”
倘若采用 匈牙利 命名规则,则应当写成
int iI, iJ, ik; //
前缀 i 表示 int 类型
float fX, fY, fZ; //
前缀 f 表示 float 类型
如此烦琐的程序会让绝大多数程序员无法忍受。
据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命
“
”
名规则。命名规则对软件产品而言并不是 成败悠关 的事,我们不要化太多精力试图发明
世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目
中贯彻实施。
3.1 共性规则
本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下 ,
再扩充特定的规则,如 3.2 节。
l 【规则 3-1-1
“
”
】标识符应当直观且可以拼读,可望文知意,不必进行 解码 。
标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中
的英文单词一般不会太复杂,用词应当准确。例如不要把 CurrentValue 写成 NowValue。
l 【规则 3-1-2
“
】标识符的长度应当符合 min-length && max-information”原则。
几十年前老 ANSI C 规定名字不准超过 6 个字符,现今的 C++/C 不再有此限制。一般来说,
长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。那么名字
是否越长约好?不见得! 例如变量名 maxval 就比 maxValueUntilOverflow 好用。单字符的名
字也是有用的,常见的如 i,j,k,m,n,x,y,z 等,它们通常可用作函数内的局部变量。
l 【规则 3-1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。
例如 Windows
“
”
应用程序的标识符通常采用 大小写 混排的方式,如 AddChild。而 Unix 应
“
”
用程序的标识符通常采用 小写加下划线 的方式,如 add_child。别把这两类风格混在一起
用。
l 【规则 3-1-4】程序中不要出现仅靠大小写区分的相似的标识符。
例如:
int x, X; // 变量 x
与 X 容易混淆
void foo(int x); // 函数 foo 与 FOO 容易混淆
void FOO(float x);