C/C++的命名原则
无以规矩,不成方圆。
符合规范的统一命名是程序编写的基本规矩之一。很多时候我们不愿意接手别人的代码,原因之一就是代码命名很乱;我们自己写代码时经常写到后面忘了前面,也有可能是我们没有养成规范的命名习惯。当写代码成为一种艺术的美时,这种美的最直接的体现就是其中变量函数等命名的规范性。
基本的命名原则
首先总结一下命名的基本原则,也就是“道”的层次。
方面 | 要求 |
---|---|
同一性 | 一个方面是整个文件中命名的原则要相同,如变量、函数都按照相同的原则命名;另一方面是一个子模块或派生类中,要遵循其基类或整体模块的命名风格,保持命名风格在整个模块中的同一性。 |
标识符组成 | 命名应该由标识符组成,组成部分要确定,如变量类型前缀+变量信息英文缩写,且缩写统一采用动宾格式。 |
最小化长度AND最大化信息量原则 | 在保持一个标识符意思明确的同时,应当尽量缩短其长度。 |
避免在不同作用域中重名 | 程序中不要出现名字完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但容易使人误解。 |
正确命名具有互斥意义的标识符 | 用正确的反义词组命名具有互斥意义的标识符,如:“nMinValue"和"nMaxValue”,“GetName()” 和 “SetName()” … |
避免名字中出现数字编号 | 尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。因为数字并传达不了有用信息。 |
禁止取单个字符作为变量名 | i 、j 、k 作局部循环变量是允许的,其他则不允许。因为其很容易敲错(如i写成j),而编译时又检查不出来。 |
说明特殊约定或缩写 | 在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。 |
特殊命名 | 除了编译开关/ 头文件等特殊应用,应避免使用_EXAMPLE_TEST_ 之类以下划线开始和结尾的定义。 |
常见的命名方法
目前业界共有四种常见的命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。
驼峰命令法
正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字,其中第一个单词的首字母小写,其他单词的首字母大写,大写字母的位置如驼峰一样交替出现。下面是分别用骆驼式命名法和下划线法命名的同一个函数:
printEmployeePaychecks();
print_employee_paychecks();
第一个函数名使用了驼峰命名法,函数名中的每一个逻辑断点都有一个大写字母来标记。第二个函数名使用了下划线法&#x