存储类型.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  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文档。上传文档
查看更多
存储类型

一、作用域:标识符的作用域就是程序中该标识符可以被使用的区域。 代码块作用域:任何在代码块(位于一对花括号之间的所有语句)的开始位置声明的标识符都具有代码块作用域,表示他们可以被这个代码块中的所有语句访问。 int fun(int a) // a: 代码块作用域 { int b; // b: 代码块作用域 int c(int d); // c: 代码块作用域 } 文件作用域:任何在所有代码块之外声明的标识符都具有文件作用域,它表明这些标识符从他们的声明之处直到它所在的源文件结尾处都是可以访问的。 int a; // a: 所有代码块之外声明,文件作用域 int b(int c); // b: 所有代码块之外声明,文件作用域 …… int d(int e); // d: 在文件中定义的函数名,文件作用域 { } 原型作用域:只适用于在函数原型中声明的参数名,这个参数名可省,不必和函数定义的形参或函数调用的实参名字一致。 int a(int b); // b: 原型作用域 …… int c(int d); { int e(int f); // f: 原型作用域 } 函数作用域:只适用于语句标签,用于goto语句。 { …… goto a; …… a: // a: 函数作用域 …… } 二、链接属性 无链接:这类标识符总是被当做单独的个体。 内部链接:在同一源文件中所有声明为同一实体,不同源文件则分属不同的实体。 外部链接:不论声明多少次以及位于几个源文件,都表示同一实体。 存储期 自动: 静态:它的生存时间是程序的整个执行过程,它的存储值仅在程序启动前初始化一次。存储类存储期作用域链接声明方式自动自动代码块代码块内寄存器自动代码块代码块内,使用关键字register外部链接的静态静态所有函数之外内部链接的静态静态所有函数之外,使用关键字static空链接的静态静态代码块代码块内,使用关键字static 附: 1、自动变量具有代码块作用域、空链接和自动存储期。它们是局部的,为定义它们的代码块(通常是一个函数)所私有。寄存器变量与自动变量具有相同的属性,但编译器可能使用速度更快的内存或寄存器来存储它们。无法获取一个寄存器变量的地址。 2、具有静态存储期的变量可能具有外部链接、内部链接和空链接。当变量在文件的所有函数之外声明时,它具有一个文件作用域的外部变量,具有外部链接和静态存储期。如果在这样的声明中再加上关键字static,将获得一个具有静态存储期、文件作用域和内部链接的变量。如果在一个函数内使用关键字static声明变量,变量将具有静态存储期、代码块作用域和空链接。 3、当程序执行到包含变量声明的代码块时,给具有自动存储期的变量分配内存,并在代码块结束时释放这部分内存。如果没有初始化,这样的变量具有一个无效值(其实是一个随机值,不能依赖于它)。在程序编译时给具有静态存储期的变量分配内存,并且在程序运行时一直保持。如果没有初始化,这样的变量被设置为0.具有代码块作用域的变量局部于包含变量声明的代码块。 4、具有文件作用域的变量对于文件中在它的声明之后的所有函数可见。如果一个文件作用域变量具有外部链接,则它可被程序中的其他文件使用。如果一个文件作用域变量具有内部链接,它只能在声明它的文件中使用。 5、C使用作用域、链接和存储期来定义5种存储类:自动、寄存器、具有代码块作用域的静态、具有外部链接的静态、以及具有内部链接的静态。

文档评论(0)

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

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

1亿VIP精品文档

相关文档