C语言函数与宏定义.ppt_第1页
C语言函数与宏定义.ppt_第2页
C语言函数与宏定义.ppt_第3页
C语言函数与宏定义.ppt_第4页
C语言函数与宏定义.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

01:13,1/49,第1章函数与宏定义,1.1函数概念,1.2变量作用域和存储类型,1.3内部函数与外部函数,1.4递归函数的设计和调用,1.5预处理,1.6综合范例,01:13,2/49,1.1函数概念,C语言中,函数可分为两类:,一类是由系统定义的标准函数,又称为库函数,其函数声明一般是放在系统的include目录下以.h为后缀的头文件中,如在程序中要用到某个库函数,必须在调用该函数之前用#include命令将库函数信息包含到本程序中。,另一类函数是自定义函数,01:13,3/49,1.1.1函数定义,存储类型符返回值类型符函数名(形参说明表)函数语句体,01:13,4/49,说明:,1存储类型符指的是函数的作用范围,它只有两种形式:static和extern。static说明函数只能作用于其所在的源文件,用static说明的函数又称为内部函数。extern说明函数可被其它源文件中的函数调用,用extern说明的函数,又称为外部函数。缺省情况为extern。,2返回值类型符指的是函数体语句执行完成后,函数返回的值的类型,如int,float,char等等,若函数无返回值,则用空类型void来定义函数的返回值。缺省情况为int型。,01:13,5/49,3函数名由任何合法的标识符构成。建议将函数名的命名与函数内容有一定关系。,4形参说明表是一系列用逗号分开的每个形参变量说明。如:intx,inty,intz这表示形参变量有三个:x,y,z。它们的类型都是int型。,5函数语句体是放在一对花括号中,由局部数据类型描述和功能实现两部分组成。,01:13,6/49,6函数返回语句的形式有以下两种:函数无返回值的情况:return;或者什么也不写函数有返回值的情况:return(表达式的值);在第种情况下要注意“表达式的值”的类型必须与函数返回值的类型相一致。,例如:求两个任意整数的绝对值的和,用函数abs_sum()实现。,/*直接调用库函数来计算m和n的绝对值*/intabs_sum(intm,intn)return(abs(m)+abs(n);/*函数abs()是在头文件math.h中声明的*/,01:13,7/49,函数定义如下:intabs_sum(intm,intn)if(m0)m=-m;if(n(c+d)?(a+b):(c+d)如果第一行写成:#defineMAX(x,y)xy?x:y则这里的t展开后为t=a+bc+d?a+b:c+d因为置换展开是用“表达式”对等的置换“形参表”中的参数。,定义带参数的宏,可以实现一些简单的函数功能。,如:#defineMAX(x,y)(x)(y)?(x):(y)main()inta,b,c,t;t=MAX(a+b,c+d);,1.5.2“文件包含”,用#include命令实现一个文件包含另一个文件。语句形式:#include“文件名”,例#includestdio.h#defineN2#defineMN+1#defineNUM(M+1)*M/2main()inti,n=0;for(i=1;i99printf(compileforarraygreaterthan99);#elseprintf(compileforsmallarray);#endifgetch();,例#defineN2#defineMN+1#defineNUM2*M+1main()inti;for(i=1;i(y)?(x):(y)main()inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(%dn,t);/*t的值是多少?*/getch();,01:13,54/49,小结:,介绍了函数的定义和传值调用函数的使用方法。,注意:若用全局变量作为函数的参数,则在函数中可以使得该全局变量的值发生变化。,对于递归函数的设计一定要有可使递归结束的条件,否则会使程序产生无限递归。,使用预处理命令时,要注意以下几点:1宏替换定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论