通用规则本节讨论的通用规则被大多数程序员所采用。我们应该在遵循这些共同规则的前提下,扩展具体规则,如节。Z“规则3-1-1”标识符应该是直观的和可拼写的,意图是字面上的,而不必被“解码”。最好使用英语单词或它们的组合,以便于记忆和阅读。避免使用汉语拼音命名。节目中的英语单词一般不要太复杂,用词要准确。例如,不要将CurrentValue写成NowValue。Z“规则3-1-2”标识符的长度应符合“最小长度最大信息”原则。几十年前,旧的ANSI C规定名字不能超过6个字符,但今天的C++/C不再有这个限制。一般来说,长名字更能表达意思,所以函数名、变量名和类名长十个字符以上也就不足为奇了。那么是不是名字越长,约会就越好呢?不是真的!例如,变量名maxval比MaxValueUntiLoverFlow更容易使用。单字符名称也很有用,如i、j、k、m、n、x、y、z等,它们通常用作函数内的局部变量。Z“规则3-1-3”命名规则尽可能与所使用的操作系统或开发工具的风格一致。例如,Windows应用程序的标识符通常在大小写中混合使用,如AddChild。Unix应用程序的标识符通常是“小写加下划线”的,比如add_child。不要把这两种风格混在一起。Z“规则3-1-4”程序没有类似的区分大小写的标识符。例如:int x,x;//变量X和X容易混淆void foo(int X);//函数foo和foo容易混淆voidFOO(浮点x);Z“规则3-1-5”在程序中没有具有相同标识符的局部变量和全局变量。尽管两个变量的范围不同,不会出现语法错误,但它们会产生误导。Z“规则3-1-6”变量名应使用“名词”或“形容词+名词”。例如:浮动值;浮动OldValue;浮动新值;Z[规则3-1-7]全局函数的名称应使用“动词”或“动词+名词”(动宾短语)。类成员函数应该只使用“动词”,省略的名词就是对象本身。例如:DrawBox();//全局函数box->Draw();//类成员函数z[规则3-1-8]用正确的反义词命名具有互斥含义的变量或具有相反动作的函数。例如:int minValue;因特最大值;INT SETVALUE(…);INT GETVALUE(…);[建议3-1-1]尽量避免给名称编号,如值1、值2等,除非逻辑上需要编号。这是为了防止程序员懒惰,拒绝为命名动脑筋,导致没有意义的名称(因为编号是最容易做的事情)。简单的Windows应用程序命名规则作者对“匈牙利”命名规则做了合理的简化。下面的命名规则简单易用,更适合Windows应用软件的开发。Z“规则3-2-1”类和函数名由大写字母开头的单词组成。
Z“规则3-2-2”变量和参数由以小写字母开头的单词组成。例如:布尔标志;Int DrawMode;Z“规则3-2-3”常数全部大写并加下划线
拆词。例如:const int MAX=100;常量int MAX_LENGTH=100;Z“规则3-2-4”静态变量前缀为s_(表示静态)。例如:void init(...){static int s_initvalue;//static variable...}z[规则3-2-5]如果你需要一个全局变量作为最后的手段,在它前面加上g_(global)。例如:int g_howmanypeople;//全局变量int g_howmuchmoney;//全局变量z“Rule 3-2-6”类的数据成员前缀为m_(for member),这防止数据成员与成员函数的参数同名。例如:void object::SetValue(int width,int height){m_width=width;m_height=height;}z[规则3-2-7]为了防止一个软件库中的某些标识符与其他软件库冲突,各种标识符可以加前缀以反映软件的性质。例如,三维图形标准OpenGL的所有库函数都以GL开头,所有常量(或宏定义)都以GL开头。