变量命名法

参考文档《Coding best practices

在代码开发过程中,定义变量是非常常见的,一个庞大的项目可能会用到成千上万的变量,如果只是随意对其进行命名而无一定的规则习惯,很显然这会让你写出的代码变得难以阅读。因此,在开始学习编程时,我们就要学会形成自己的一种命名规则,让自己以及读者能够快速的读懂变量的含义及其用途。

在本文档中,我们将介绍C++语言中变量命名的规则以及四种常用的变量命名法,你可以学习使用其中一种符合自己口味的命名法,也可以在这些基础上形成自己的变量命名风格。唯一的要求是, 确保在一个项目的代码文件中变量名风格是统一并且易读的

请注意本文档介绍的命名风格不只可用于变量,也常用于在未来会学到的函数、文件等模块的命名。

C++变量命名规则

  1. 变量名中的其它字符必须是字母、数字或下划线,不得使用空格或其它特殊符号

  2. 不能以数字开头。换言之,必须以 字母 (大小写不限)或 下划线 开头。(关于下划线开头,请参考下篇文档“C++保留字规则”)

  3. 变量名不可以是系统的关键字,如:int, double, for, return等保留字,它们在C++语言中有特殊用途。

  4. 变量名长度通常在255个字符(character)以下。

  5. 变量名中出现的大写和小写字母被看作是不同的字符,因此ABC,Abc,abc是三个独立的变量名。

  6. 名字应有较好的 易读性 :使读者易于明白其存储的值是什么。

驼峰命名法(Camel-Case)

骆驼式命名法(Camel-Case)又称驼峰式命名法,也称小驼峰式命名法。

正如其名称表示,在使用此种风格进行变量命名时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。例如:variableOne、variableTwo。这样命名出的变量看起来就像骆驼峰一样,每个大写字母都是一个“驼峰”。

variableOne
variableTwo

蛇形命名法(snake case)

下划线命名法变量名和函式名称是由二个或二个以上单词连结在一起,每个单词用下划线隔开并且单词都是小写,例如:print_employee。下划线命名法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。

variable_one
variable_two

帕斯卡命名法(Pascal case)

帕斯卡命名法在进行命名时,每个单词首字母均大写。例如:VariableOne、VariableTwo。其与(小)驼峰命名法十分相似,区别只在于第一个单词首字母是否大小写,因此也有人称其为大驼峰命名法(Upper Camel Case)。

匈牙利命名法(Hungarian Notation)

这种命名方法是由程序员Charles Simonyi提出,据说这种命名法是对于Simonyi祖籍的一种讽刺。

匈牙利命名法的基本原则是,变量名=属性+类型+对象描述,通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。例如:iRandomSeed,以i开头表明此变量是Int(整型)变量,再对此变量进行描述为Random Seed,说明其是一个随机种子,可以快速明白此变量的用途是作为一个整型的随机种子数。

arrDistributeGroup	//Array called "Distribute Group"
sUserName			//string called "User Name"
iRandomSeed			//Integer called "Random Seed"

以下为匈牙利命名法中常用的前缀。

前缀 类型 举例 前缀 类型 举例子
i 整型 int iCount s 字符串 string sUserName
n 短整型 short int nSize a 数组 array aDistributeGroup
l 长整型 long int lNum p 指针 pointer pFoo
c 有符号字符 char cApples lp 长指针 long pointer lpBar
by 字节 byte byLoad m_ 类的成员 member m_Foo
w 字 word wTrans fn 函数 function fnFunction
b 布尔值 boolean bBusy

更多可参考匈牙利命名法-维基百科