标识符的含义.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
标识符的含义

标识符的含义 标识符也称为名字,可以指代多种实体:函数、结构标记、联合标记和枚举标记;结构 成员或联合成员;枚举常量;类型定义名;标号以及对象等。对象有时也称为变量,它是一 个存储位置。对它的解释依赖于两个主要属性:存储类和类型。存储类决定了与该标识对象 相关联的存储区域的生存期,类型决定了标识对象中值的含义。名字还具有一个作用域和一 个连接。作用域即程序中可以访问此名字的区域,连接决定另一作用域中的同一个名字是否 指向同一个对象或函数。作用域和连接将在A.11 节中讨论。 A.4.1 存储类 存储类分为两类:自动存储类(automatic)和静态存储类(static)。声明对象时使用的一 些关键字和声明的上下文共同决定了对象的存储类。自动存储类对象对于一个程序块(参见 A.9.3 节)来说是局部的,在退出程序块时该对象将消失。如果没有使用存储类说明符,或者 如果使用了auto限定符,则程序块中的声明生成的都是自动存储类对象。声明为register 的对象也是自动存储类对象,并且将被存储在机器的快速寄存器中(如果可能的话)。 静态对象可以是某个程序块的局部对象,也可以是所有程序块的外部对象。无论是哪一 种情况,在退出和再进入函数或程序块时其值将保持不变。在一个程序块(包括提供函数代 码的程序块)内,静态对象用关键字static 声明。在所有程序块外部声明且与函数定义在 同一级的对象总是静态的。可以通过static 关键字将对象声明为某个特定翻译单元的局部 对象,这种类型的对象将具有内部连接。当省略显式的存储类或通过关键字extern 进行声 明时,对象对整个程序来说是全局可访问的,并且具有外部连接。 A.4.2 基本类型 基本类型包括多种。附录B 中描述的标准头文件limits.h中定义了本地实现中每种 类型的最大值和最小值。附录B给出的数值表示最小的可接受限度。 声明为字符(char)的对象要大到足以存储执行字符集中的任何字符。如果字符集中的 某个字符存储在一个char类型的对象中,则该对象的值等于字符的整型编码值,并且是非负 值。其它类型的对象也可以存储在char类型的变量中,但其取值范围,特别是其值是否带符 号,同具体的实现有关。 以 unsigned char 声明的无符号字符与普通字符占用同样大小的空间,但其值总是非 负的。以signed char显式声明的带符号字符与普通字符也占用同样大小的空间。 说明:本书的第1 版中没有unsigned char 类型,但这种用法很常见。signed char 是新 增加的。 除 char 类型外,还有3 种不同大小的整型类型:short int、int 和long int。普 通int 对象的长度与由宿主机器的体系结构决定的自然长度相同。其它类型的整型可以满足 各种特殊的用途。较长的整数至少要占有与较短整数一样的存储空间;但是具体的实现可以 使得一般整型(int)与短整型(short int)或长整型(long int)具有同样的大小。 除非特别说明,int类型都表示带符号数。 以关键字unsigned 声明的无符号整数遵守算术模2n的规则,其中,n 是表示相应整数 的二进制位数,这样,对无符号数的算术运算永远不会溢出。可以存储在带符号对象中的非 负值的集合是可以存储在相应的无符号对象中的值的子集,并且,这两个集合的重叠部分的 表示是相同的。 单精度浮点数(float)、双精度浮点数(double)和多精度浮点数(long double) 中的任何类型都可能是同义的,但精度从前到后是递增的。 说明:long double是新增加的类型。在第1 版中,long float与double类型等价,但 现在是不相同的。 枚举是一个具有整型值的特殊的类型。与每个枚举相关联的是一个命名常量的集合(参 见A.8.4 节)。枚举类型类似于整型。但是,如果某个特定枚举类型的对象的赋值不是其常量 中的一个,或者赋值不是一个同类型的表达式,则编译器通常会产生警告信息。 因为以上这些类型的对象都可以被解释为数字,所以,可以将它们统称为算术类型。char 类型、各种大小的int类型(无论是否带符号)以及枚举类型都统称为整型类型(integral type)。 类型float、double和long double统称为浮点类型(floating type)。 void类型说明一个值的空集合,它常被用来说明不返回任何值的函数的类型。 A.4.3 派生类型 除基本类型外,我们还可以通过以下几种方法构造派生类型,从概念来讲,这些派生类 型可以有无限多个: ??给定类型对象的数组 ??返回给定类型对象的函数 ??指向给定类型对象的指针 ??包含一系列不同类型对象的结构 ??可以包含多个不同类型对象中任意一个

您可能关注的文档

文档评论(0)

bm5044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档