C语言变量命名规则

在定义变量时,变量名可以是字母、数字和下划线的组合。但是也不是随便的组合,要注意以下几个命名规则:

1) 变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。

随便打开一个头文件就会看到,它里面所有的变量名、宏名、函数名全是以下划线开始的。
打开 VC++ 6.0 或者 VS 2010 等,然后在里面随便写一个头文件名,比如 stdio.h,然后选中它,右击,在弹出的快捷菜单中单击Open Document"stdio.h"就打开stdio.h这个头文件了。这时需要注意的是,打开后千万不要改动里面的内容,看看就行了。
所以为了避免与系统定义的名字产生冲突,在编程的时候,除非要求这么定义,否则永远都不要使用下划线作为一个变量名的开头。

2) 变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。

3) 变量名绝对不可以是C语言关键字,这一点一定要记住!

4) 变量名中不能有空格。这个可以这样理解:因为上面我们说过,变量名是字母、数字、下划线的组合,没有空格这一项。

命名规范

以上变量命名规则是C语言语法规定的,必须遵守,不遵守就是错的。除此以外,在实际开发中程序员还形成了一种变量命名“习惯”,或者说是约定成俗的变量命名规范,它们虽然不受语法的约束,但是遵守这些“事实标准”会让代码更加专业,更加高大上。

1) 禁止取单个字母作为变量名(如 a、b、c、d、i、j、k、m、n……)。在前面的讲解中之所以用单个字母,只是为了方便讲解,以免喧宾夺主。刚开始学的时候也可以用,但是不要永远就只会用单个字母。

那为什么不要定义成单个字母呢?原因很简单——没有含义!你定义变量 a,其他人怎么知道这个 a 是什么意思?就算有注释,但难免会忘记。

所以在定义变量的时候,变量名最好要有明确的含义,这样可以提高代码的可读性。不管是自己写程序,还是别人读你的程序,都会很舒服。

在实际编程中经常用英文单词或英文单词的缩写来作为变量名,而且缩写也有一定要规则:
  • 通常较短的单词可通过去掉“元音”形成缩写,比如表示“个数”的 count 可以缩写成 cnt;
  • 较长的单词可取单词中的几个字母形成缩写;
  • 对于一些单词还有大家公认的缩写,比如:
    • temp 可缩写为 tmp;  //temp是“临时”的意思
    • flag 可缩写为 flg;  //flag是“标志位”的意思
    • statistic 可缩写为 stat;  //statistic是“统计”的意思
    • increment 可缩写为 inc;
    • message 可缩写为 msg;

如果变量名由多个单词组成而且不用缩写,那么每个单词的首字母全部都要用大写,必要时可用下划线分隔。

2) 但并不是说就绝对不可以用单个字母,有些变量它本身就是没有含义,我们也不能硬生生给它赋予含义,这时候就可以用单个字母。比如后面学习循环语句的时候,里面有一个循环变量,它就是定义成 i、j、k,这已经是公认的了。

但大多数情况下,在编程的时候变量都是有含义的,这时候就应该用英文单词或英文单词的缩写作为它的名字。