3.2 标识符
C语言中,为了区分不同的变量、常量、函数、数组等,需要为其设定不同的名称,这些用于识别和区分的名称就是标识符。标识符的名称设定比较自由,开发者可以设定自己喜欢且容易理解的各类名称,但这并不意味着可以随意自由发挥。
下面介绍设定C语言标识符时应遵守的一些基本命名规则。
(1)标识符必须以字母或下画线开头,而不能以数字或者符号开头。例如:
int $num; /*错误,标识符第一个字符不能为符号*/ int 2hao; /*错误,标识符第一个字符不能为数字*/ int num; /*正确,标识符第一个字符为字母*/ int _hao; /*正确,标识符第一个字符为下画线*/
(2)标识符中,除开头外的其他字符可以由字母、下画线或数字组成。例如:
int good_way; /*正确,标识符中可以有下画线*/ int bus7; /*正确,标识符中可以有数字*/ int car6V; /*正确*/
(3)C语言区分大小写,也就是说,大写或小写的英文字母代表的是不同的标识符。例如,下面的代码给出了3个不同的标识符。
int mingri; /*全部是小写*/ int MINGRI; /*全部是大写*/ int MingRi; /*一部分是小写,一部分是大写*/
可以看出,标识符中只要有一个字符不同,其代表的就是一个新的名称。
(4)标识符不能是关键字。例如,系统使用int关键字表示整型数据类型,因此用户定义的标识符就不能再使用int,否则会提示编译错误。但将其中的某个字母改写成大写字母后,就可以通过编译。
int int; /*错误,int为系统关键字*/ int Int; /*正确,Int不再是关键字*/
(5)标识符应体现一定的功能含义,便于理解。通常采用所表述内容的英文、拼音等,这样即便是没有注释,只直观地查看代码,也能快速了解到其表述的作用及功能。
例如,定义一个长方体的长、宽和高时,如果将其简单定义为a、b、c,则没有注释的情况下会很难理解。相比之下,iLength、iWidth、iHeight这样的标识符更清晰、明了,推荐大家采用。
int a; /*长方体的长*/ int b; /*长方体的宽*/ int c; /*长方体的高*/ int iLength; /*长方体的长*/ int iWidth; /*长方体的宽*/ int iHeight; /*长方体的高*/
误区警示
标识符必须使用英文,是一个不精准的说法。开发环境不同,要求也不同。Visual C++ 6.0中,使用中文标识符会出现错误,但Visual Studio 2022中使用中文标识符编译器并不会报错。综合考量,最好不要使用中文写代码,以免出现不必要的错误。另外,写代码时要多写注释,养成好习惯。
(6)按照ANSI标准,最初的ANSI C规定标识符长度不准超过6个字符,但在C99之后放宽到了31个字符。一般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符也不足为怪。
注意
编写代码和定义标识符时需要注意以下方面。
(1)书写标识符时,要注意大小写的区分。
(2)书写代码时,应先调整输入状态为“英文半角输入法”。