微社区 > 全部版块 > C > 帖子

Laster   发表于 2016-12-30 21:36:37

收藏 46 0

【标识符命名规则】C 语言基础教程(五) 标识符命名规则

 

C语言基础教程.jpg



 

13. 标识符命名规则  


1. 长度限制

    C89 规定,编译器至少应该能够处理 31 个字符(包括 31)以内的内部标识符(internal identifier);而对于外部标识符(external identifier),编译器至少应该能够处理 6 个字符(包括 6)以内的外部标识符。所谓标识符,是指我们为变量(variable)、宏(macro),或者函数(function)等等取的名字。例如 int num; 这个语句中的 num 就是一个标识符。

    最新的 C99 标准规定,编译器至少应该能够处理 63 个字符(包括 63)以内的内部标识符;编译器至少应该能够处理 31 个字符(包括 31)以内的外部标识符。

    事实上,我们可以使用超出最大数目限制的字符来命名标识符,不过编译器会忽略超出的那部分字符。也就是说,如果我们用 35 个字符来命名变量,而那个编译器最多只能处理 31 个字符的变量名的话,那么多出的那 4 个字符就会被编译器忽略,只有前面的 31 个字符有效。有些古老的编译器只能处理 8 个字符以内的标识符,对于这样的编译器来说,标识符 kamehameha 和 kamehameko 是等价的,因为它们前面 8 个字符相等。

 

2. 可用字符和组合规则

    标准规定,标识符只能由大小写英文字母,下划线(_),以及阿拉伯数字组成。标识符的第一个字符必须是大小写英文字母或者下划线,而不能是数字。

           合法命名           非法命名

             wiggles          $Z]**        /* $、] 和 * 都是非法字符  */

             cat2               2cat          /*  不能以数字开头  */

             Hot_Tub         Hot-Tub  /*  - 是非法字符  */

             taxRate           tax rate   /*  不能有空格  */

             _kcab              don't       /*  ' 是非法字符  */

操作系统和 C 语言标准库里的标识符一般以下划线开头,这是约定俗成的。因此,我们应该避免使用下划线作为我们自己定义的标识符的开头。

    C 语言是大小写敏感的语言,也就是说,star、Star、sTar,stAr 和 STAR 等都是相互不同的标识符。

    我们不能用关键字和保留标识符来给我们自定义的变量命名。


Laster 于2016年12月30日 21:44 重新编辑过该帖
全部回复共0条
电梯直达
我要回复
返回顶部
邀请好友 App下载 意见反馈