C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt

C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt

ID:50043763

大小:632.50 KB

页数:25页

时间:2020-03-08

C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt_第1页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt_第2页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt_第3页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt_第4页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第7章091014.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计2021/7/211第七章模块化程序设计相关主讲:计算机学院朱立华内容提要程序可以由多个源文件(多模块)组成,使变量的作用域和函数的调用范围被拓广了,产生下面两组概念:外部函数与内部函数外部变量与静态外部变量const常类型的有关知识,了解指向const常量的指针作形参既高效又保证了对应实参变量不被修改几种常用的编译预处理无参宏指令和带参宏指令条件编译指令文件包含指令模块化程序设计方法简介,一个管理系统的模块划分2021/7/213从多函数到多模块多函数必定导致多模块:一个程序如果定义有很多函数,为了便于控制,可

2、以把这些函数按类划分,每一类包含在一个可以独立编译的源文件中,每个源文件称为一个模块主控模块:是包含主函数的模块,程序永远只有一个主函数多模块必定引起下列问题:一个变量在某一个模块中定义,可能用于多个模块中一个函数在某一个模块中定义,可能在多个模块中被调用当变量或函数需要在其他非定义的模块中使用时,必须作声明,可以在多个模块中声明,但只能在一个模块中定义当变量空间通过指针被多个模块共享时,如何保护数据多个文件如何构成同一个程序当程序只有一个模块时,声明和定义的区别常常被忽略2021/7/214外部函数函数定义和函数声明的区别:

3、函数声明(也称函数原型)是向编译器表示一个函数的名称、将接受什么样的参数、有什么样的返回值,使编译器能够检查函数调用的合法性,不为函数分配空间。函数定义要求编译器生成函数代码,并为之分配存储空间。在多模块程序设计中某函数可以被多个模块调用:它的声明可以出现在多个模块中它的定义只能出现在一个模块中外部函数:该函数在模块B中定义,但是在模块A中需要调用,则必须在模块A中声明模块B中的该函数,形式:extern返回类型函数名(形参表);这就是同一模块中的函数原型声明形式此关键字虽然可缺省,但写上则表明所声明的函数在其他模块中定义20

4、21/7/215外部函数外部函数声明的位置(设模块B中定义的函数被模块A所调用):(1)在模块A的所有函数之外(一般最前面)声明表7.2外部函数示例(2)在模块A的某个需要调用外部函数的函数体内声明表7.3在函数体内声明另一个外部函数特别提醒:⑴外部函数定义前不能带关键字extern。⑵一个函数在默认状态下就是外部函数,具有全局作用域,在同一个模块中声明函数时不加extern,但在其他模块中声明时,为增强可读性,通常需要加关键字extern。动态演示过程动态演示过程2021/7/216内部函数内部函数:只限于一个模块调用(其他

5、模块不能调用)的函数,也称其为静态函数。内部函数在声明或定义前带有关键字static内部函数的定义和声明都必须在调用它的同一个模块中。内部函数只能用于1个文件中,具有文件作用域表7.4内部函数示例该例中,有三个模块,两个外部函数A和B,一个内部函数F,只在Main.c文件中起作用,一个main函数动态演示过程程序只有一个模块时,函数无所谓外部或内部,它们是一样的,声明不需要关键字static或extern。定义内部函数可以避免和其他模块中的同名函数发生冲突2021/7/217外部变量变量定义和变量声明的区别:变量声明:向编译器

6、表示一个变量的名称和类型,并不为其分配空间,在需要使用变量的模块中都要作出声明变量定义:根据变量所属类型,为其分配特定大小的内存空间,数据存储格式也随之确定,每个变量只能定义一次二者关系:只有一个模块的程序中变量的定义和声明是不分的,它们格式相同,定义也就是声明在多模块程序设计中一个变量可以被多个模块使用:外部变量声明可以出现在多个模块中外部变量定义只能出现在一个模块中并初始化(默认初值为0)2021/7/218外部变量外部变量:该变量在模块B中定义,但是在模块A中需要使用,则必须在模块A中声明模块B中的该变量,形式:exte

7、rn类型名变量名;外部变量声明的位置(设模块B中定义的变量在模块A中被使用):(1)在模块A的所有函数之外(一般最前面)声明表7.5外部变量的全局作用域(演示版作了简化)该例中有一个外部变量,数组dys(2)在模块A的某个需要使用外部变量的函数体内声明此关键字表明所声明的变量在其他模块中定义这就是变量定义的形式动态演示过程2021/7/219静态外部变量静态外部变量:只限于一个模块使用(其他模块不能使用)的外部变量静态外部变量在函数体外声明,声明前带有关键字static,这时的声明也就是定义,需要同时作初始化(默认初值为0)静

8、态外部变量只能用于当前文件中,具有文件作用域当某个具有文件作用域的变量在函数内部用static声明(定义)时,就是6.4.2节所讲的静态局部变量了表7.6具有文件作用域的静态外部变量动态演示过程2021/7/2110各种变量的作用域与生存期变量的存储类型函数内函数外文件外作用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。