Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19268690
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-03-20 18:32:19

来源: 作者:antigloss 等级:一般
发布于2005-10-22 20:02 被读4349次 【字体: 】

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 等都是相互不同的标识符。
    我们不能用关键字保留标识符来给我们自定义的变量命名。关于关键字和保留标识符,请点击

参考资料:

C Primer Plus, 5th Edtion By Stephen Prata
The C Programming Language 2e By K&R
C89 2.2.4.1 Translation limits & 3.1.2 Identifiers
C99 5.2.4.1 Translation limits & 6.4.2 Identifiers

本文版权归 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。

阅读(683) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~