《unix_linux应用程序命名法》.pdf
文本预览下载声明
L i n u x/ u n i x 程序命名规则
顾名思义,“命名规则”指的是为标识符起名字时遵循的规则。
标识符主要包括变量名、函数名和宏名。
1 常见命名规则
比较著名的命名规则首推匈牙利命名法,
这种命名方法是由Microsoft 程序员查尔斯 ·西蒙尼(Charles Simonyi) 提出的。
其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;
前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:lpszStr, 表示指向一个以\0结尾的字符串(sz)的长指针(lp)变量。
骆驼(Camel)命名法近年来越来越流行,
在许多新的函数库和 Java 这样的平台下使用得当相多。
骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。
其中第一个单词首字母小写,余下的单词首字母大写。
例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。
帕斯卡(Pascal)命名法与骆驼命名法类似。
只不过骆驼命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。
例如:DisplayInfo()和 UserName 都是采用了帕斯卡命名法。
在 C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,
例如变量名采用骆驼命名法,而函数采用帕斯卡命名法。
另一种流行的命名规则称为下划线命名法。
下划线法是随着 C 语言的出现流行起来的,在 UNIX/LIUNX 这样的环境,以及 GNU 代码中使用非常
普遍。
共性规则
本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充
特定的规则。
【规则1-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。
标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单
词一般不会太复杂,用词应当准确。例如不要把CurrentValue 写成NowValue。
【规则1-2】标识符的长度应当符合“min-length max-information” 则。
几十年前老ANSI C 规定名字不准超过 6个字符,现今的C++/C 不再有此限制。一般来说,长名字
能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。那么名字是否越长约好?
不见得! 例如变量名 maxval 就比maxValueUntilOverflow好用。单字符的名字也是有用的,常见
的如 i,j,k,m,n,x,y,z 等,它们通常可用作函 内的局部变量。
【规则1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。
例如 Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序
的标识符通常采用“小写加下划线”的方式,如add_child。别把这两类风格混在一起用。
【规则1-4】程序中不要出现仅靠大小写区分的相似的标识符。
例如:
int x, X ; // 变量 x 与 X 容易混淆
void foo(int x); // 函 foo 与FOO容易混淆
void FOO(float x);
【规则1-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不
会发生语法错误,但会使人误解。
【规则1-6】变量的名字应当使用“名词”或者“形容词+名词”。
例如:
float value;
float oldValue;
float newValue;
【规则1-7】全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。类的成员函数应
当只使用“动词”,被省略掉的名词就是对象本身。
例如:
DrawBox(); // 全局函
box-Draw(); // 类的成员函
【规则1-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函 等。
例如:
int minValue;
int maxValue;
int SetValue(…);
int GetValue(…);
【建议】尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编
显示全部