c 语言 第六章函数与宏定义.ppt

c 语言 第六章函数与宏定义.ppt

ID:48660365

大小:319.00 KB

页数:49页

时间:2020-01-18

c 语言 第六章函数与宏定义.ppt_第1页
c 语言 第六章函数与宏定义.ppt_第2页
c 语言 第六章函数与宏定义.ppt_第3页
c 语言 第六章函数与宏定义.ppt_第4页
c 语言 第六章函数与宏定义.ppt_第5页
资源描述:

《c 语言 第六章函数与宏定义.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第六章函数与宏定义§6.1函数概念§6.2变量作用域和存储类型§6.3内部函数与外部函数§6.4递归函数设计和调用§6.6综合范例10/8/20211§6.1函数概念C语言允许把问题设计成一个一个的模块,程序通过调用模块功能来解决问题。这些模块通常都是通过函数来实现的,又可称其为函数模块。C语言中,函数可分为两类:一类是由系统定义的标准函数,又称为库函数,其函数声明一般是放在系统的include目录下以.h为后缀的头文件中,如在程序中要用到某个库函数,必须在调用该函数之前用#include<头文件名>命令将库函数信息包含到本程序中。另一

2、类函数是自定义函数,两种形式:第一种:函数声明、函数调用、函数定义。第二种:函数定义、函数调用。10/8/20212§6.1.1函数定义函数定义的一般形式可以有两种。形式一:[存储类型符][返回值类型符]函数名([形参说明表]){函数语句体}形式二:[存储类型符][返回值类型型符]函数名([形参表])形参说明;{函数语句体}10/8/20213说明:1.[存储类型符]指的是函数的作用范围,它只有两种形式:static和extern。static说明函数只能作用于其所在的源文件,用static说明的函数又称为内部函数。extern说明函数

3、可被其它源文件中的函数调用,用extern说明的函数,又称为外部函数。缺省情况为extern。2.[返回值类型符]指的是函数体语句执行完成后,函数返回的值的类型,如int,float,char等等,若函数无返回值,则用空类型void来定义函数的返回值。缺省情况为int型。10/8/202143.函数名由任何合法的标识符构成。建议将函数名的命名与函数内容有一定关系。4.在第一种函数定义的形式中,[形参说明表]是一系列用逗号分开的每个形参变量说明。如:intx,inty,intz这表示形参变量有三个:x,y,z。它们的类型都是int型。在第

4、二种函数定义的形式中,[形参表]是一系列用逗号分开的形参变量。如:x,y,z5.函数语句体是放在一对花括号{}中,由局部数据类型描述和功能实现两部分组成。10/8/202156.函数返回语句的形式有以下两种:①函数无返回值的情况:return;②函数有返回值的情况:return(表达式的值);在第②种情况下要注意“表达式的值”的类型必须与函数返回值的类型相一致。例如:求两个任意整数的绝对值的和,用函数abs_sum()实现。/*直接调用库函数来计算m和n的绝对值*/intabs_sum(intm,intn){return(abs(m)+

5、abs(n));}/*函数abs()是在头文件math.h中声明的*/10/8/20216函数定义如下:intabs_sum(intm,intn){if(m<0)m=-m;if(n<0)n=-n;return(m+n);}§6.1.2函数声明和调用一.函数的声明函数声明的一般形式:[存储类型符][返回值类型符]函数名([形参说明表]);如:intabs-sun(intm,intn);10/8/20217二.函数调用函数调用是通过函数调用语句来实现的,分两种形式:①无返回值的情况:函数名([实参表]);②有返回值的情况:变量名=函数名([

6、实参表]);该变量名的类型必须与函数的返回值类型相同。函数调用时都会去执行函数语句中的内容,函数执行完毕后,回到函数的调用处,继续执行下面的语句。10/8/20218§6.1.3函数的传值方式函数的传值方式:采用实参表将每一个实参的值相应地传递给每一个形参变量,形参变量在接收到实参表传过来的值时,会在内存临时开辟新的空间,以保留形参变量的值,当函数执行完毕时,这些临时开辟的内存空间会被释放,并且形参的值在函数中不论是否发生变化,都不会影响到实参变量的值的变化,这就是函数的传值方式。自定义函数在程序中的使用顺序有两种形式:①先进行函数声明

7、,再进行函数调用,函数定义放在函数调用之后。函数声明在函数调用之前。②函数定义放在函数调用之前。10/8/20219【例6-1】编程序,通过调用函数abs-sum(),求任意两个整数的绝对值的和。/*exam6_1.c调用函数求两整数绝对值的和*/#includeintabs_sum(intm,intn);main(){intx,y,z;scanf("%d%d",&x,&y);z=abs_sum(x,y);printf("sumis%d",z);}intabs_sum(intm,intn){if(m<0)m=-m;if

8、(n<0)n=-n;returnm+n;}程序运行结果:712sumis1910/8/202110用传值方式调用函数时,实参也可以是函数调用语句【例6-2】求任意三个数的绝对值的和。/*exam6_2.c

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

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

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