函数与编译预处理.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
函数与编译预处理

第六章 函数与编译预处理 6.1 模块化程序设计与函数 6.2 函数的定义与调用 6.3 函数的嵌套调用 6.4 函数的递归调用 6.5 变量的作用域与存取方式 6.6 编译预处理 6.1 模块化程序设计与函数 在解决较复杂的问题时,我们一般采用的方法是:把问题分成几个部分,每部分又可分成更细的若干小部分,逐步细化,直至分解成很容易求解的小问题。这样的话,原来问题的解就可以用这些小问题来表示。 一、模块与函数 一个较大的程序一般应分为若干个程序模块,每个模块实现一个特定的功能。在C语言中用函数来实现模块,故一个C程序可由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用,同一个函数可以被一个或多个函数调用任意多次。通过函数的调用来实现完成大任务的全部功能。 任务、模块与函数的关系:一个大任务分成多个功能模块, 功能模块则由一个或多函数实现。 模块化的程序设计是靠设计函数和调用函数实现的。 二、模块设计的原则 三、简单的模块函数举例 例6_1:求三个数的最大值 main( ) { int a,b,c,maxval; printf(\nplease input three datas to a,b,c:); scanf(%d%d%d,a,b,c); maxval=max(a,b); maxval=max(maxval,c); printf(the max=%d,maxval); } int max(int x,int y) { int z; if(xy) z=x; else z=y; return z; } 6.2 函数的定义与调用 在C语言中,函数(Function)是一个处理过程,可以进行数值运算、信息处理、控制决策,即一段程序的工作放在函数中进行,函数结束时可以携带或不携带处理结果。 从用户使用函数的角度来看,函数有两种: ★库函数(标准函数):系统提供 ★用户自定义函数:用户自己写 C语言程序处理过程全部都是以函数形式出现,最简单的程序至少也有一个main函数。函数必须先定义和声明后才能调用。 一、标准库函数 C语言有丰富的库函数,这些函数的说明在不同的头文件(*.h)中。 1.根据函数是否需要参数,可将函数分为无参函数和有参函数两种。 (1)定义无参函数的一般形式 函数类型 函数名( void ) { [说明语句部分;] 可执行语句部分; } 注意:如果不需要参数,则用“void”表示,也可以括号里面什么也不写。 在C语言中可把函数分为有返回值函数和无返回值函数两种: (1)函数返回值与return语句 有返回值的函数,是通过函数中的return语句来获得的。 ①return语句的一般格式: return ( 返回值表达式 ); ②return语句的功能:返回调用函数,并将“返回值表达式”的值带给调用函数。 注意:如果所定义的函数不需要返回值,则可以用“void”定义成“无(空)类型”。 如:void print(int a) { printf(“%d\n”,a); } 例6_2:计算1!+2!+3!+…+10! 的值 void main() { long mm( int n); int i; long s=0; for (i =1; i =10; i ++) s+= mm(i ); printf(“\n%ld”,s); } 主调函数调用被调函数、传递数据。一般是通过实际参数和形式参数结合完成的,形式参数与实际参数具有下面几点关系: 1、形式参数在函数中是变量名, 在函数调用时,形参被分配相应的内存,函数调用结束后形参被分配的内存空间被撤销,形参的值将不被保留。 2、实际参数是表达式,负责向对应的形参标识的内存单元传递数据。 3、实参与形参必须个数相同,且其类型应一致或赋值兼容。 4、实参对形参的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 6.3 函数的嵌套调用 #define K 4 #define N 5 long f1(int n,int k) { long power=n; int i; for(i=1;ik;i++) power *

文档评论(0)

tmd2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档