欢迎来到天天文库
浏览记录
ID:57401046
大小:545.00 KB
页数:79页
时间:2020-08-18
《C程序的模块化设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章C程序的模块化设计本章要点C程序的模块化结构内部变量、外部变量、静态(static)变量变量的存储属性动态存储分配和释放编译预处理7.1C程序的模块化结构7.3变量和函数的存储属性7.4动态存储分配和释放第7章C程序的模块化设计7.2内部变量、外部变量和作用域、生存期7.7本章小结7.5编译预处理7.6综合应用举例7.1C程序的模块化结构模块化程序设计方法的思想:将一个较大的程序按功能分割成一些模块,每个模块都是功能单一、结构清晰、接口简单、容易理解的小任务。对每一个处于底层的小任务编写相应的实现函
2、数,然后通过函数调用的方法将多个这样的函数按功能组合成一个较高层的调用函数,多个这样的调用函数又可成为被调函数,并按功能组织成更高层次的调用函数。7.1C程序的模块化结构模块化程序设计的基本方法:自顶向下(或自底向上)和逐步求精。C语言的开发工具提供了程序工程开发的能力。工程由多个源程序文件组成。每个源程序文件可以单独编译;然后再连接成一个大的可执行文件。每个源程序文件可以包含一个或多个函数。一个工程只能有一个main主函数。7.1C程序的模块化结构7.1.1概述7.1.2多源文件程序的结构7.1.3分割
3、编译7.1C程序的模块化结构7.1.1概述函数是C程序的基本组成单位。C编程就是在main函数中给一些函数安排一个执行顺序,而在这些函数中,又安排了另一些函数的执行顺序。7.1C程序的模块化结构7.1.1概述main(){……f1();……f2();……}f1(){…g1()…}f2(){…h1();…h2();…k1()…}g1(){…k1()…}h1(){…}h2(){…}k1(){…}图7.1由若干个函数组成的一个程序1.1算法、C语言和程序设计7.1.1概述如何组织这些函数?问题:1.1算法、C语
4、言和程序设计7.1.2多源文件程序的结构当一个程序由许多函数构成时,如果所有的函数都放在一个.c程序文件中,势必会造成文件体积庞大,查找函数困难,阅读理解困难,函数取名困难,安排函数的顺序也困难。程序员编程时,往往采用模块化程序设计方法,将一个大的程序分解为功能单一的小模块。1.1算法、C语言和程序设计7.1.2多源文件程序的结构将图7.1的所有函数组织在三个程序文件file1.c、file2.c和file3.c中。/*file1.c*/externvoidf1();externvoidf2();void
5、main(){…f1();…f2();……}/*file2.c*/voidg1();voidk1();voidf1(){…g1();…}voidg1(){…k1();…}voidk1(){…}/*file3.c*/voidh1();voidh2();externvoidk1();voidf2(){…h1();…h2();…k1();…}voidh1(){……}voidh2(){……}7.1C程序的模块化结构7.1.3分割编译编译是以源文件为单位进行的。在编译该程序时,可以以源文件为单位分别进行编译,相应产
6、生目标文件,然后再用连接程序将分别编译产生的多个目标文件连接成一个可执行文件,这样的过程称为分割编译。7.1C程序的模块化结构7.1.3分割编译编写多源文件程序的步骤基本:编译:必须对程序中的每个源程序文件单独进行编译,编译通过后生成相应的文件名同源程序文件名,扩展名为.obj的目标程序文件。由于有多个源程序文件,因此有多个目标程序文件。连接:连接器把上一步生成的多个目标程序文件和系统的库函数代码结合在一起生成扩展名为.exe的可执行程序文件。运行:运行生成后的可执行文件。7.2内部变量、外部变量和作用域
7、、生存期7.2.1内部变量、外部变量7.2.2静态(static)变量7.2.3作用域及生存期7.2内部变量、外部变量和作用域、生存期7.2.1内部变量、外部变量1.内部变量:也称局部变量,即在函数内部定义的变量。以下变量都是内部变量:在函数内部定义的变量,其作用范围只在该函数内部。函数定义时的形参,其作用范围只在该函数内部。在复合语句中定义的变量,其作用范围只在该复合语句内。7.2内部变量、外部变量和作用域、生存期7.2.1内部变量、外部变量内部变量的特点:块作用域:所有内部变量的作用域都是局部的,称为
8、程序块作用域。自动生存期:局部变量具有自动存储期限。当调用函数时,“自动”分配局部变量的存储单元,当函数返回时释放变量所在存储空间。注意:当再次调用函数时,无法保证变量始终保留原来的值。7.2内部变量、外部变量和作用域、生存期7.2.1内部变量、外部变量讨论下面程序的内部变量及其特点:voidmain(){inta,b;intx[10],y[10];…if(a
此文档下载收益归作者所有