★函数分类 今从用户角度 标准函数(库函数):由系统提供解决公共问题,使用 时要包含相应的库文件 ●用户自定义函数由用户自己定义,解决特定的冋题 今从函数形式 无参函数主调函数与被调函数之间无参数传递,通常 来执行一组操作 有参函数:主调函数与被调函数之间有参数传递 使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件
函数分类 ❖从用户角度 ⚫ 标准函数(库函数):由系统提供,解决公共问题,使用 时要包含相应的库文件 ⚫ 用户自定义函数:由用户自己定义,解决特定的问题 ❖从函数形式 ⚫ 无参函数:主调函数与被调函数之间无参数传递,通常 来执行一组操作 ⚫ 有参函数:主调函数与被调函数之间有参数传递 使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件
7.2函数的定义 令函数必须定义才能够调用,在函数定义时,要对函数的 类型、形参及其类型、函数中所要完成的操作、返回的 函数值进行一系列的规定,根据这些规定才能够正确的 对函数进行调用。 令其中函数中所完成的操作是函数的核心部分,是由程序 语句实现的;函数及形参的类型是正确使用函数的依据; 函数返回的值是调用函数后所得到的结果
❖ 函数必须定义才能够调用,在函数定义时,要对函数的 类型、形参及其类型、函数中所要完成的操作、返回的 函数值进行一系列的规定,根据这些规定才能够正确的 对函数进行调用。 ❖ 其中函数中所完成的操作是函数的核心部分,是由程序 语句实现的;函数及形参的类型是正确使用函数的依据; 函数返回的值是调用函数后所得到的结果。 7.2 函数的定义
函数的定义 函数返回值类型 缺省int型 ★一般格式 无返回值void 合法标识符 现代风格: 函数类型函数名(形参类型说明表) 函数体 说明部分 语句部分 例无参函数 printstar( printf(* *********n”);} 或 printstar( void) 为空 i printf( 水**水**水**
一般格式 合法标识符 函数返回值类型 缺省int型 无返回值void 函数体 函数类型 函数名(形参类型说明表) { 说明部分 语句部分 } 现代风格: 例 有参函数(现代风格) int max(int x,int y) { int z; z=x>y?x:y; return(z); } 例 有参函数(现代风格) int max(int x, y) { int z; z=x>y?x:y; return(z); } 例 空函数 dummy( ) { } 函数体为空 例 无参函数 printstar( ) { printf(“**********\n”); } 或 printstar(void ) { printf(“**********\n”); } 函数的定义
传统风格:函数类型函数名(形参表) 形参类型说明 说明部分 语句部分 例有参函数(传统风格) int max(x, y) int x y Z=X>y?xy return (z)
函数类型 函数名(形参表) 形参类型说明 { 说明部分 语句部分 } 传统风格: 例 有参函数(传统风格) int max(x,y) int x,y; { int z; z=x>y?x:y; return(z); }
★定义一个有参函数计算并输出两个形参的平均值 函数为实型函数 函数名 两个形参 float fun(a, b) int a, b 两个形参均为整型 i float ave; ave=(a+b)/20; printf("a=%d, b=%d, average=%fin", a, b, ave); 形参在函数体之前已经说明,函数体中不能再次定义
{ float a, b, ave; ave= (a+b)/2.0 ; printf ( "a=%d,b=%d,average=%f\n",a,b,ave ); } 函数名 函数为实型函数 float ave; 形参在函数体之前已经说明,函数体中不能再次定义 float fun2 ( a , b ) 两个形参 int a , b ; 两个形参均为整型 定义一个有参函数,计算并输出两个形参的平均值