- 8
- 0
- 约1.67万字
- 约 61页
- 2017-04-01 发布于四川
- 举报
程序的设计实践4w2c—chap5函数
提纲 5.1 子程序设计 5.2 函数 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数 提纲 5.1 子程序设计 5.2 函数 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数 5.3 头文件 对于一些通用的函数(如输入输出函数、数学函数等),可能在不同的程序中都会用到。 为了使用这些函数,需要在程序中说明其函数原型。 一种方式是在程序中逐个写出函数原型; double sqrt(double x) ; double fabs(double x) ; 另一种方式是将这些函数原型集中在一起,形成.h头文件,然后在程序中直接包含这些头文件。 #includemath.h 5.3 头文件 提纲 5.1 子程序设计 5.2 函数 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数 5.5 变量作用域 变量的基本属性:变量名、变量类型、变量值 变量的其他属性: 作用域(scope,程序中可引用该变量的区域) 存储类别(storage class,变量存储在哪里) 存储期( storage duration,变量存活期) 连接(linkage) 5.5 变量作用域 变量作用域即可以引用该变量的程序段。 C语言中变量可以在三种位置进行定义: 函数内部的定义部分(即任何语句之前); 函数内部的某一个复合语句内部; 所有函数之外。 变量定义的位置决定了变量的作用域。 以上三种位置的变量分别对应于: 函数作用域; 块作用域; 文件作用域。 5.5.1变量作用域-函数作用域 若变量在函数内所有语句之前定义,则该变量具有函数作用域:只有在定义变量的函数内部才能使用这些变量。 5.5.1变量作用域-函数作用域 5.5.1变量作用域-函数作用域 1.主函数main()与其它函数是平行关系。main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。同时,主函数中也不能使用其它函数中定义的内部变量。 2.形参变量也是内部变量,属于被调用函数。 3.允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。 5.5.2变量作用域-块作用域 若变量在复合语句中定义,则其具有块作用域:只在复合语句范围内才能引用该变量。 允许函数定义部分定义的变量与该函数内部的复合语句中定义的变量同名。在复合语句执行时,函数定义部分定义的变量是“隐藏的”,直到复合语句结束。建议:尽量不要这么做。系统不会混淆,并不意味着人也不会混淆! 5.5.2变量作用域-块作用域 5.5.3变量作用域-文件作用域 若变量在函数外部定义,则该变量具有文件作用域:从变量的定义位置开始,到本文件结束为止的区域可以引用该变量。 若该变量被定义成非静态外部变量,则其也能被其他文件引用(后面会讲到)。 由于变量在函数外定义,此类变量称为外部变量。由于其在文件范围内可引用,所以又称全局变量。 5.5.3变量作用域-文件作用域 (1)外部变量可以减少函数参数的使用,但会加强函数之间的数据联系,使这些函数依赖这些外部变量,因而使得这些函数的独立性降低(重用函数时必须要记得“带着”外部变量)。 【示例】 (2) 由于无法限制各函数对外部变量的访问,可能会使外部变量被某些函数非法修改,当程序出错时不好检查。 从模块化程序设计的观点来看这是不利的,因此不是非用不可时,不要使用外部变量。 (3)在同一源文件中,允许外部变量和内部变量同名。在内部变量的作用域内,外部变量将被屏蔽而不起作用。【示例】 5.5.3变量作用域-文件作用域 5.5.3变量作用域-文件作用域 (3)外部变量的作用域是从定义点到本文件结束。如果文件中定义点之前的函数需要引用这些外部变量时,需要在函数内对被引用的外部变量进行说明。外部变量说明的一般形式为: extern 数据类型 外部变量[,外部变量2……]; 【示例】 【Next】 5.5.3变量作用域-文件作用域 5.5.3变量作用域-文件作用域 例: 外部变量的定义与说明。 int CalVolumn() { extern int length, width, height;/*外部变量的说明*/ return ( length*width*height ) /*使用外部变量*/ } int length =3, width=
您可能关注的文档
- 江苏省淮安市淮海中学2016年高三上学期月考生物试卷[11月份]含解析.doc
- 江苏省淮安市淮阴区南陈集中学2016-2017年度高一上学期期末模拟测试生物试题附解析.doc
- 江苏省淮安市清中教育集团2012-2013年度高二下学期期末学业质量调查测试英语试题附解析.doc
- 江苏省淮安市淮阴师院附中2015-2016年度高二下学期期中物理试卷含解析.doc
- 江苏省淮安市范集中学11-12年度高一下学期第一次学情调查历史试题.doc
- 江苏省淮安市淮阴区2015-2016年度高二下学期期中考试生物试题附解析.doc
- 江苏省淮安市范集中学2012年高三第一次全真模拟测试数学试题.doc
- 社会分层-流动与教育.ppt
- 研究的设计与问卷的设计.ppt
- 江苏省淮安市重点中学2015年高三上学期10月联合质量检测物理附解析.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 储能电站电池充放电管理制度.docx VIP
- 2024年重庆市铜梁县公开招聘城市协管员试题带答案详解.docx VIP
- 2024年重庆市奉节县公开招聘城市协管员试题带答案详解.docx VIP
- 2024《管理报告体系研究的国内外文献综述》4600字.docx VIP
- 2026-2031年中国基金市场发展前景预测研究报告.docx VIP
- (人教2024版)数学六年级下册 第4单元《比例》大单元教学设计 .pdf VIP
- 高中物理课件:向心加速度.ppt VIP
- 青岛市2025年高三一模语文试卷(含答案).pdf
- 4 数据管理能力成熟度DCMM标准解读.pptx VIP
- 《诊疗六步》.pptx VIP
原创力文档

文档评论(0)