现在的位置: 首页 > 综合 > 正文

C核心技术手册(八)

2017年09月06日 ⁄ 综合 ⁄ 共 1169字 ⁄ 字号 评论关闭

 1.1  标识符

  标识符是指C程序中的变量、函数、宏、结构和其他对象的名称,标识符可以包括下面的字符:

l  基本字符集中的字母, a-z A-Z, 标识符是大小写敏感的;

l  下划线字符,_

l  数字,0-9,但首字符不能为数字;

l  通用字符用来表示其他语言中的字母和数字;

被允许的通用字符定义在C标准的附录D中,与ISO/IEC TR 10176标准中的字符相符。

  标识符中也允许使用多字节字符,但是要由C执行程序运行环境来决定哪些多字节字符可以使用。

  下面37个关键词为C语言保留,在编译器中有其他意义,不能被用做标识符:

  Auto

  Enum

  Restrict

  Unsigned

  Break

  Extern

  Return

  Void

  Case

  Float

  Short

  Volatile

  Char

  For

  Signed

  While

  Const

  Goto

  Sizeof

  _Bool

  Continue

  If

  Static

  _Complex

  Default

  Inline

  Struct

  _Imaginary

  Do

  Int

  Switch

  Double

  Long

  Typedef

  Else

  Register

  Union

  下面的例子是正确的标识符:

  X  dollar  Break  error_hander scale64

  下面的的例子是不正确的标识符:

  1st_rank  switch  y/n  x-ray

  如果编译器支持通用字符名,a则为有效的标识符,你可以将这它定义为一个变量名:

    double a = 0.5;

  你的代码编辑器将会以通用字符/u03B1表示a将其保存在文件中。

   当在程序中先择标识符时,记住有些标识符已经在C标准库中使用,所以不用使用它来为你的函数或全局变更命名,详见第15章。

  编译器提供了预指示符__func__, 你可以使用用此字符串常量来获得函数的名称,这对日志和调试输出很有帮助,例如:

 

此例中,传一个空指针给函数test_func(),产生一个如下的错误信息:

  对于标识符的长度没有限制,但是,大多数编译器认为标识符中只有有限个数的字符才具有意义,换句话说,编译有可能区分不开均很长的标识符,根据C标准,编译器必须视函数名、全局变量名标识符的前31个字母为有意义的(即:外部链接标识符),并且认为其他的标识符至少前63个字符是有意义的。

抱歉!评论已关闭.