欢迎来到天天文库
浏览记录
ID:37835420
大小:512.81 KB
页数:62页
时间:2019-06-01
《模块化程序设计11》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章模块化程序设计●函数●变量的存储属性●模块的编译和链接●宏定义与宏替换第4章模块化程序设计C语言是一种较现代的程序开发语言。它提供如下一些支持模块化软件开发的功能:(1)C语言用函数组织程序,在C语言程序中,一个程序由一个或多个程序文件组或,每一个程序文件就是一个程序模块,每一个程序模块由一个或多个函数组成。程序设计的任务就是设计一个个函数,并且确定它们之间的调用关系。在设计函数时要使每个函数都具有各自独立的功能和明显的界面。(2)通过给变量定义不同的存储类别,控制模块内部及外部的信息交换。(3)具有编译预
2、处理功能,为程序的调试、移植提供了方便,也支持了模块化程序设计。4.1函数4.1.1设计C语言程序就是设计函数无论涉及的问题是复杂还是简单,规模是大还是小,用C语言设计程序,任务只有一种,就是编写函数,至少也要编写一个main函数。执行C程序也就是执行相应的main函数。即从main函数的第一个前花括号开始,依次执行后面的语句,直到最后的后花括号为止。模块化程序设计有一个原则:就是每个模块的规模一般不能太大(有人认为要控制在40~60行之间),以便于阅读,便于检查其中的错误。在C语言中,减少主函数规模的一项基本措
3、施就是通过调用其它函数来实现主函数需要的一些功能。main(void){┇f1();┇f2();┇return0;}操作系统f1(){┇f11();┇}f1(){┇f21();┇f22();┇}f11(){┇}f21(){┇}f22(){┇}main()f1()f2()f22()f21()f11()参数参数参数参数参数返回返回返回返回返回4.1.2函数结构为了定义函数,必须首先了解函数的结构。一个C语言函数的结构形式如下:函数头{函数体}1.函数头函数类型函数名(形式参数表列)一个函数的函数头的结构如下:(1)函
4、数类型。指定函数值的类型,即函数返回值的类型。(2)函数名。函数名必须采用合法的用户标识符。(3)圆括号:在函数名后面的一对圆括号是“函数运算符”,表示进行函数运算,函数运算符具有很高的运算优先级别(4)形式参数表。形式参数表由写在一对圆括号(函数运算符)中的一系列参数组成。每一个参数由一个类型符和一个参数名组成。参数名也应当是合法的用户关键字。函数可以没有参数,这时在函数运算符内写一个“void”,也可以空允白。2.函数体函数体由一些语句组成。主要是三种类型的语句:声明语句:声明在函数中要使用的变量等程序实体。
5、可执行语句:包括若干流程控制语句和表达式语句,。return语句:使流程返回到调用处。这里主要介绍return语句的用法。当函数执行到return语句时,将停止本函数的执行,将流程送回到调用处。同时,编译器将函数分为三类进行处理:纯粹计算型函数,如sqrt()和sin()。这类函数将返回一个计算结果。完成一项具体工作,返回完成的成败。如printf()执行成功时,返回显示的字节数;失败时,返回一个负整数。只执行一个过程的函数,不产生返回值,其类型应定义为void。C99规定,对于非void类型的函数,必须使用有返
6、回值的return语句。intabsolutevalue(intx){return(x>=0?x:-x);}voidspc(intn){inti;for(i=0;i
7、intfunc(intx){x=5;returnx+3;}intmain(void){printf("x=%d",x);return0;}这个程序企图在main函数中使用func函数中的变量x。编译这个程序,系统将给出如下编译错误:c(13):errorC2065:'x':undeclaredidentifier4.空函数空函数是一个不产生任何有效操作的函数,但它却是一个合法的C函数。例如函数voidnull(void){}就是一个空函数。空函数多使用在模块化程序的设计或测试中。一般首先写好main函数,确定
8、需要调用的函数,然后逐步编写这些函数,如果在有一些函数还未编写好时想对已有俩编好的函数进行调试,可以先用空函数(函数名用将来使用的实际函数名,如sort)放在程序中原定的位置上,这样就可以调试程序的其它部分,等以后再逐步补上。4.1.3函数定义与函数声明1.函数定义函数定义是按照C语言的语法规则引入新的函数,并提供如下信息:函数的返回值类型(如果有);参数的个数及类型和名
此文档下载收益归作者所有