变量命名规则:匈牙利、下划线、帕斯卡
在C语言里,变量的命名需要遵循一定的规范:变量名由字母和数字组成,但第一个字符必须为字母,下划线也被看做是字母。大写字母与小写字母是有区别的,比如a与A是两个不同的变量名。一般大写字母组成的名字用做符号常量。
变量名不能与C编译系统中已经预定义的,具有特殊用途的关键字同名。如float,auto,break等。
一个变量的名字,一般说来,变量名或函数名应该足够长,以有效地描述所命名的变量或函数。应该避免使用短而模糊的名字,因为它们在别人理解你的程序时会带来麻烦。大多数ANSI编译程序允许有至少31个有效字符,即只有变量或函数名的前31个字符的唯一性会被检查。一种较好的经验是使函数名或变量名读起来符合英语习惯,就好象你在读一本书一样,人们应该能读懂你的函数名或变量名,并且能很容易地识别它们并知道它们的大概作用。
一般来说,一个局部变量的名字,建议使用比较短的名,而全局变量,使用比较长的名字。比如,一个用于循环的局部变量,一般用一个i来做名字就足够了。
3.11.1 匈牙利
在Windows平台,变量的命名一般遵循匈牙利法则,而Unix/Linux却不推荐这种方法。也就是按照下面的规则来命名一个变量:
1)Windows平台
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。下面是各个部分的例子:
属性部分:
全局变量 g_
常量 c_
c++类成员变量 m_
静态变量 s_
类型部分:
指针 p
函数 fn
无效 v
句柄 h
长整型 l
布尔 b
浮点型(有时也指文件) f
双字 dw
字符串 sz
短整型 n
双精度浮点 d
计数 c(通常用cnt)
字符 ch(通常用c)
整型 i(通常用n)
字节 by
字 w
实型 r
无符号 u
描述部分:
最大 Max
最小 Min
初始化 Init
临时变量 T(或Temp)
源对象 Src
目的对象 Dest
比如,下面是一些实际的命名例子:
int g_nTotal = 0;
char m_chGender = ‘M’;
char* szName = NULL
BOOL bIsOpened = FALSE;
int iMyData//匈牙利
3.11.2 下划线方式命名:UNIX/Linux平台
与Windows平台不同,在UNIX/Linux下,并不推荐匈牙利命名方法。在Unix/Linux平台下,命名方法如下:
不推荐大小写混用。一般标识符或函数名只由小写字母,数字和下划线构成。
变量名应该有意义,但在不失去意义的前提下,应该尽量简短。比如num_of_car就比car或者i或者this_is_the_num_of_the_car要好。
函数名应该以动词开头。比如get_prop_of_car()。
3.11.3 驼峰命名
骆驼式命名法(Camel-Case)又称驼峰命名法,就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏。
printEmployeePaychecks();//骆驼
int myData;//骆驼
string userName//骆驼
3.11.4 帕斯卡命名
帕斯卡命名法是在命名的时候将每个单词的首字母大写。单字之间不以空格断开或连接号(-)、底线(_)连结,第一个单字首字母采用大写字母;后续单字的首字母亦用大写字母,例如:FirstName、LastName。每一个单字的首字母都采用大写字母的命名格式,被称为“Pascal命名法”,源自于Pascal语言的命名惯例,也有人称之为“大驼峰式命名法”(Upper Camel Case)。
public void DisplayInfo();//帕斯卡
string UserName;//帕斯卡
int MyData;//帕斯卡