vlambda博客
学习文章列表

【C语言】5. 起名字的学问

    最近很多同学尝试写自己的第一个程序,出了问题发给我看,我猛然发现同学们对于给自己的文件起名字还真有意思,叫什么的都有,所以今天想和你说说关于名字的一些事情。

01

怎么起文件名?


看到同学们起文件名的时候五花八门,其实有些字符是不能用于文件名的。先看一下规则吧。

  • 1、在文件名或文件夹名中,最多可以有255个字符。转换成汉字就是127个,不过随着系统的升级和兼容,如今的操作系统文件名的长度似乎可以更长。

  • 2、可以使用扩展名,扩展名用来表示文件类型。

  • 3、文件名或文件夹名中允许使用空格,不能出现的字符有: \ / : * ? # ” < > |

  • 4、不区分英文字母大小写。例如:A1与a1是同一个文件名。

  • 5、可以使用多分隔符的名字。例如:中国.百度.exe。 

    所以,首先你要知道你的文件名中哪些字符是不能用的,例如引号,冒号,井字号等都是不能用于文件名的。

    其次,给文件起名字的时候最好有一定的意义,例如sy1_1.c意思是第一章实验第一题,厦门_20190102是2019年1月2日在厦门旅游的照片。这样当我们找文件的时候就可以一目了然,不用每个文件打开看了才知道内容。因此最好建文件夹时就按类型建好,不要把所有东西放在桌面。例如在E盘建一个工作文件夹work,里面有这样几个文件夹:C语言、大基、software等,这样找东西时就可以方便快捷的找到自己需要的东西。

    有些同学说,老师我记不住哪些字符不能用怎么办,那么我给你个建议,最好只用汉字,字母,数字,下划线,这样就肯定没有问题了,其实这些完全能表达你的思想了。如果是给程序起名字,尽量只用字母,数字,下划线,因为有些编译系统是英文版的,对汉字无法编码或者编译会报错都会给你的程序执行带来困扰。完全不必要为这个困扰浪费时间。


02

C语言中的标识符


  标识符是用来给程序中的常量、变量、函数、文件指针和数据类型等命名。这些称为自定义标识符,规则如下:

  • 1、由字母、数字、下划线组成,且第一个字符不能是数字。

  • 2、标识符中的大、小写英文字母的含义不同。通常变量用小写字母,符号常量用大写字母。

  • 3、ANSI C和标准C++的标识符的有效长度是1~31个字符,Visual C++标识符的有效长度是1~247个字符,而Turbo C 2.0编译系统只能识别前8个字符。

  • 4、用户自定义标识符时,应当尽量遵循“见名思意”和“简洁明了”的原则,且不能与关键字相同。

依次给大家解释一下:

(1)标识符可以为a2,不能是2a。其实这是为了避免和数值型常量混淆。这样说吧,如果可以数字打头,写一个123,那这到底是数值123还是变量123呢?就无法表达清楚了,编译系统会产生困扰,无法编译。

(2)temp,Temp,TEMP分别是三个不同的标识符。

(3)各个编译系统能识别的标识符长度不同,所以我们写程序时没必要搞那么长的标识符,8位足够了,可以用于每个编译系统,而且太长了,写代码也花时间不是!

(4)本条前半截不是规则,是建议。举两个例子。

    例1:如在程序中用到了半径我们一般都用r表示,你别出心裁非用d表示,可以吗?可以,程序也不会有任何问题,你在求圆面积时的代码就会这样写,s=3.14*d*d,程序照样执行,结果也正确,可是在其他人看你的程序时会产生疑问,圆面积不是3.14和半径平方的乘积吗?怎么成直径了?而且过了半个月你再看自己的程序可能也会有这样的疑问,你或许已经忘记了当时自己的心血来潮和别出心裁。


  例2:每个人有自己的姓名,父母给起的,父母在起名字时也是费了一番心血的,都有一定的意义。可以叫“小狗”吗?当然可以,公安局户籍中心也允许这样的名字,可是你的父母没有这样做,为什么,有歧义啊,会产生很多误会,我们可以避免这样的误会。所以在给标识符起名字时尽量遵循“见名思意”和“简单明了”,方便自己和看程序的其他人。

    后半截就是规矩了:不能用系统关键字作为变量名,当然也是为了编译系统的方便。例如你定义了一个变量int,你会让编译系统产生困扰,这到底是类型标识符int还是变量int啊?

    好了,关于名字的问题就先说这么多了,如果还有不明白的地方,就留言吧。