- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计15--用函数实现模块化程序设计3解析
C 程序设计 授课教师 孙向群 fd_jsj@163.com #include stdio.h int main() { int max( ); extern int A,B,C; scanf(“%d %d %d”,A,B,C); printf(max is %d\n,max()); return 0; }? int A ,B ,C;? int max( ) { int m; m=AB?A:B; if (Cm) m=C; return(m); } 7.9.3 全局变量的存储类别 2. 将外部变量的作用域扩展到其他文件 如果一个程序包含两个文件,在两个文件中都要用到同一个外部变量Num,不能分别在两个文件中各自定义一个外部变量Num 应在任一个文件中定义外部变量Num,而在另一文件中用extern对Num作“外部变量声明” 在编译和连接时,系统会由此知道Num有“外部链接”,可以从别处找到已定义的外部变量Num,并将在另一文件中定义的外部变量num的作用域扩展到本文件 7.9.3 全局变量的存储类别 例7.19 给定b的值,输入a和m,求a*b和am的值。 解题思路: 分别编写两个文件模块,其中文件file1包含主函数,另一个文件file2包含求am的函数。 在file1文件中定义外部变量A,在file2中用extern声明外部变量A,把A的作用域扩展到file2文件。 7.9.3 全局变量的存储类别 文件file1.c: #include stdio.h int A; int main() { int power(int); int b=3,c,d,m; scanf(%d,%d,A,m); c=A*b; printf(%d*%d=%d\n,A,b,c); d=power(m); printf(%d**%d=%d\n,A,m,d); return 0; } 7.9.3 全局变量的存储类别 文件file2.c: extern A; int power(int n) { int i,y=1; for(i=1;i=n;i++) y*=A; return(y); } 编译和运行包括多个文件的程序,可参考《C程序设计学习辅导》一书的“C语言上机指南”部分 7.9.3 全局变量的存储类别 3.将外部变量的作用域限制在本文件中 有时在程序设计中希望某些外部变量只限于被本文件引用。这时可以在定义外部变量时加一个static声明。 file1.c static int A; int main ( ) { …… } file2.c extern A; void fun (int n) { …… A=A*n; …… } 只能用于本文件 本文件仍然不能用 7.9.3 全局变量的存储类别 说明: 不要误认为对外部变量加static声明后才采取静态存储方式,而不加static的是采取动态存储 声明局部变量的存储类型和声明全局变量的存储类型的含义是不同的 对于局部变量来说,声明存储类型的作用是指定变量存储的区域以及由此产生的生存期的问题,而对于全局变量来说,声明存储类型的作用是变量作用域的扩展问题 7.9.3 全局变量的存储类别 用static 声明一个变量的作用是: (1) 对局部变量用static声明,把它分配在静态存储区,该变量在整个程序执行期间不释放,其所分配的空间始终存在。 (2) 对全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。 7.9.3 全局变量的存储类别 注意:用auto、register、static声明变量时,是在定义变量的基础上加上这些关键字,而不能单独使用。 下面用法不对: int a; static a; 编译时会被认为“重新定义”。 7.9.3 全局变量的存储类别 7.9.4 存储类别小结 对一个数据的定义,需要指定两种属性: 数据类型和存储类别,分别使用两个关键字 例如: static int a; auto char c; register int d; 可以用extern声明已定义的外部变量 例如: extern b; 静态局部整型变量或静态外部整型变量 自动变量,在函数内定义 寄存器变量,在函数内定义 将已定义的外部变量b的作用域扩展至此 (1)从作用域角度分,有局部变量和全局变量。它们采用的存储类别如下: 按作用域角度分 局部变量 全局变量 自动变量 静态局部变量 寄存器变量
您可能关注的文档
- CSS-非财务人员的财务管理解析.ppt
- CS_10控制系统的计算机仿真应用实例解析.ppt
- css教程解析.ppt
- cst故障处理解析.ppt
- CT室工作制度MicrosoftWord文档解析.doc
- CS3000解析.ppt
- CT技师历年真题考试5套试题汇总解析.doc
- CSS样式的高级应用解析.ppt
- CT检查技术解析.doc
- CT设备保养与维护解析.ppt
- 2024-2025学年初中信息技术(信息科技)八年级上册浙教版(2020)教学设计合集.docx
- 2024-2025学年高中数学必修 第一册人教B版(2019)教学设计合集.docx
- 2024-2025学年小学音乐三年级上册人教版(2024)教学设计合集.docx
- 2024-2025学年高中物理选修2人教版教学设计合集.docx
- 2024-2025学年高中语文必修三苏教版教学设计合集.docx
- 2024-2025学年初中地理七年级下册鲁教版(五四学制)(2024)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)九年级下粤教B版(第4版)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)第2册泰山版(2018)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)第五册北京版(2013)教学设计合集.docx
- 2024-2025学年初中心理健康七年级全一册北师大版(2015)教学设计合集.docx
最近下载
- 2024霸王茶姬- 以东方茶会世界友品牌简介手册-65P.pptx VIP
- 焊点标准(DIP部分).pdf
- 大职赛生涯闯关参考答案.docx VIP
- 宁夏水务投资集团有限公司招聘笔试题库2023.pdf
- eo体系内审检查表.doc
- 桉木P-RC+APMP化机浆废水的污染特征与生物处理的研究.pdf VIP
- 《基于项目式学习在初中物理教学中培养学生问题解决能力的实践研究》课题研究方案.doc
- Unit4Funwithnumbers.(课件)-外研版(三起)(2024)英语三年级上册.pptx VIP
- 城市轨道交通全自动运行系统场景技术规范.pdf VIP
- 大学本科优质生源基地建设管理办法.docx
文档评论(0)