资源描述:
《《函数与预处理》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章函数与预处理一.函数的概念、分类及定义第4章函数与预处理函数的概念逻辑上独立的、完成指定功能的一段代码,是编译的最小单位.有的程序设计语言分成子程序和函数两种,如Basic,Fortran等.函数参数返回值由一个main函数及若干个其它函数组成.main用户函数1用户函数n库函数………用户函数k用户函数j库函数库函数………另外,在main函数前还可以定义全局变量,声明所用函数.C程序的结构函数可看作为一个“黑箱”,通过参数和返回值与外界进行数据交换.C++的程序结构第4章函数与预处理一个程序中
2、有且只能有一个main函数;函数的定义是独立的,不能嵌套定义;函数可以相互调用,但不能调用main函数;在函数被调用之前,必须先定义或声明.关于函数的几点规定函数是模块化程序设计的基本单位,C程序就是由函数组成,因此被认为是面向函数的语言;C++采用类结构设计方式,将对象的数据及操作(函数)捆绑起来,封装于类中,如下图.数据操作代码对象1数据操作代码对象k数据操作代码对象2数据操作代码对象jmain函数的分类从用户使用的角度看,可分成两类:标准库函数:编译系统自带的函数,用户只需在程序中包含相应的头
3、文件,就可以调用.在连接时,系统会将相应的代码连接到用户的执行程序中.VC++几个常用的头文件及库函数:输入/输出库(iostream):getchar,gets,puts,scanf,printf等;数学函数库(cmath):abs,fabs,labs,sin,cos,tan,exp等;(cstdlib):__max,__min,itoa,atoi,atol,atof,rand等;字符串处理(cstring):strlen,strcpy,strncpy,strcmp,strlwr,strupr,s
4、trchr,strrchr,strstr等;字符分类及转换(cctype):isalpha,isdigit,islower,isupper等;动态存储分配(C语言)(malloc.h):calloc,malloc,realloc,free等;时间库函数(ctime):time,ctime,_strtime等;用户自定义函数:按C++的语法定义函数.第4章函数与预处理函数的定义定义无参函数的一般格式第4章函数与预处理<返回值类型><函数名>([void]){函数体;return[<返回值>];}注:如
5、果没有返回值,则<返回值类型>为void,return后面不需要任何返回值,甚至return本身也可省略.函数体可以是空的,但{}不能省.遵守标识符的命名规则.在C语言中通常省略,但C++中一般写明void.例:下面的函数用于输出当前时间.#includevoidPrnTime(void){chartm[11];_strtime(tm);cout<<函数名>(形式参数表){函数体;return[<返回值>];}例
6、:求整数m,n的最大公约数.intgcf(intm,intn){intr;while((r=m%n)!=0){m=n;n=r;}returnn;}返回类型为int;m,n为两个形式参数,在函数被调用时通过实际参数传递得到值;函数体返回值n,其类型必须同声明.简称:形参内置函数第4章函数与预处理普通函数调用时,需要花费一定的时间.对于一些频繁调用的规模较小、结构较简单的函数,C++提供了一种提高效率的方法,它将被调用的函数代码直接嵌入到调用处,这种函数称为内置函数或内联函数或内嵌函数.inlinein
7、tgcf(intm,intn);voidmain(void){inta,b,c;cin>>a>>b;c=gcf(a,b)cout<<"gcf="<8、一个建议,最后由编译系统决定是否将函数内置;若内置函数中包含复杂的控制语句,如循环语句,switch语句,则作为普通函数处理.另外,如函数规模较大,也作普通函数处理.具有函数调用的优点(如,限制局部变量的作用域),且比普通函数的执行速度更快;具有宏定义(稍后介绍)等价的效果,但不象宏定义具有副作用;增加可执行代码的长度;当内联函数的定义作了修改,则调用内联函数的程序都要重新编译.这对于规模较大、由多个文件组成的程序,比较费时.内置函数的好处内置函数的缺点二.函数的声明