- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C与C程序设计第九章数据存储方式
第九章 数据的存储方式
;9.1 局部变量和全局变量
9.2 变量的存储方式
9.3 内部函数和外部函数
9.4 动态存储单元
9.5 变量修饰符 const
;9.1 局部变量和全局变量
函数的作用域规则,是关于控制一段代码是否能够调用或者访问另一段中的代码或数据的一些规定。
9.1.1 局部变量
在任何一个代码块内定义的变量叫做局部变量。所谓代码块就是在一对花括号内的代码段。说明局部变量最常见的代码块是函数。;;9.1.2 全局变量
在函数之外定义的变量,称为全局变量,也叫做外部变量。 ;9.2 变量的存储方式; 在两大类存储方法中,变量又可具体分为四种:自动的(auto)、静态的(static)、寄存器的(register)和外部的(extern)。
在变量定义语句中,存储定义符放在它所修饰的基本数据类型前面,其一般形式如下:
storage_type type_specifier variable_list;
这里,storage_type是存储定义符(auto,static,register,extern);type_specifier是基本数据类型; variable_list是被说明的变量名表。;9.2.1 局部变量的存储定义
1. 自动变量(auto)
局部变量一般情况下(不加特殊声明)属于动态存储类。 ;2. 静态局部变量(static)
有时希望局部变量的值,在每次离开其作用范围后不消失并保持原值,占用的存储空间不释放。这时,应该用存储定义符static将变量定义为静态局部变量。例如语句:
static int num1, num2;
定义变量num1和num2为静态局部变量。;3. 寄存器变量(register)
如果变量在程序运行中使用非常频繁,则为存取该变量要消耗很多时间。利用寄存器操作速度快的特点,将变量存放在CPU的寄存器中,可以提高程序的运行效率。寄存器变量占用CPU的高速寄存器,不占用内存单元。变量的值就保存在CPU的寄存器中。
定义寄存器变量语句的一般形式为:
register 类型名 变量名表;
;9.2.2 全局变量的存储定义
1. 外部全局变量
如果在一源文件中将某些变量定义为全局变量。而这些全局变量允许其它源文件中的函数引用的话,就需要有一种办法,把程序的全局变量告诉所有的模块文件。解决的办法是,在一个模块文件中将变量定义为全局变量,而在其它模块文件中,用extern来说明这些变量。例如,
extern int a;
说明整型变量a在其它源程序文件中已经定义为全局变量,在本文件中被说明是外部存储类型的,因而本文件可以引用。;2. 静态全局变量
静态全局变量是这样一种全局变量,它在被定义的源程序文件以外是不可见的。也就是说,静态全局变量只限于它所在的源程序文件中的函数引用,而不能被其它源程序文件中的函数引用。静态全局变量定义的形式是在全局变量定义语句的数据类型前加静态存储定义符static。其形式和局部静态变量是一样的。例如,
static int a:
定义为静态全局变量。;9.2.3 变量存储类型小结
一个数据包含有两个属性:数据类型和存储类型。
从作用域的角度,我们有局部变量和全局变量。按它们的存储类别,局部变量又分为自动的、静态的和寄存器的三种。全局变量又分为静态的和外部的两种。
;变量的存储类型
?
;9.3 内部函数和外部函数;9.3.2 外部函数
外部函数可以被程序的其它文件内的函数调用。外部函数定义的方法是,在定义函数时,在函数类型前加extern。例如,
extern float func(int x,float y)
{
}
如果在定义函数时省??extern,则隐含为外部函数。例如,例9.2.4程序中的函数:
void num_init()
int numbers()
在定义时虽然没有用extern说明,但实际上就是外部函数,它们可以被另一个文件的函数调用。;9.3.3 多文件程序的编译—工程文件
(1) 选择主菜单中的projet,它有如下的子菜单:
Open project...
Close project...
Add item
您可能关注的文档
- 6.2燃烧热 反应热计算.com].ppt
- 第18章习题解答.ppt
- 第132232号月考测试(第一章).doc
- 第06章_二极管及整流电路.ppt
- 6对一些特殊矩阵采用压缩存储目主要是为了.doc
- 6S管理(三、清扫推进).ppt
- 第19讲_完形填空.ppt
- 6大学无机化学.ppt
- 第2讲:民法、物权法.doc
- 第1章1.5 逻辑代数与逻辑电路P35G.ppt
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
文档评论(0)