文档详情

《unix_linux应用程序命名法》.pdf

发布:2015-12-28约1.01万字共10页下载文档
文本预览下载声明
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等,除非逻辑上的确需要编
显示全部
相似文档