8.4.2函数的调用方式 P151 1.函数语句(把函数调用作为一个语句) 如例一中的 printstar0;无返回值,只要求函数完成 定的操作 2.函数表达式要求函数带回一个确定的值以参加表达 式的运算) 如:c=2*max(a,b); 3函数参数(函数调用作为一个函数的实参) 如:m=max(a,max(b,c);
8.4.2 函数的调用方式 P151 1.函数语句 (把函数调用作为一个语句) 如例一中的 printstar(); 无返回值,只要求函数完成 一定的操作. 2.函数表达式(要求函数带回一个确定的值以参加表达 式的运算) 如:c=2 * max(a,b); 3.函数参数(函数调用作为一个函数的实参) 如:m=max(a,max(b,c));
8.4.3对被调用函数的声明和函数原型 1.库函数的调用 必须在源程序中用 inc lude命令将定义该库函数 的头文件“包含进来”。 如:# inc ude“math.hi 调用方式: ◆独立语句执行某项操作,如 cIrscr(), printf (input a, b=) F ◆表达式中作运算对象,如 a=sgrt(x)+pow(r, 3), c=exp(a)
8.4.3 对被调用函数的声明和函数原型 1.库函数的调用 必须在源程序中用include命令将定义该库函数 的头文件“包含进来” 。 如:# include “math.h” 调用方式: ◆独立语句 执行某项操作,如 clrscr( ), printf(“Input a,b=”) 等 ◆表达式中 作运算对象,如 a=sqrt(x)+pow(r,3),c=exp(a) 等
2、自定义函数 maino 自定义函数和变量一样,在其主 调函数中也必须“先声明,后使0 at add(oat,a; 用 体*对被调函数的声明*/ 如右例中的 float a, b, c, float add(float, float) scanf(%of,% of &a, &b); 右例中的自定义函数声明也可以 c=add(a, b); 用以下两种形式:P153 printf(sum=%f\n",c); d(f (多余,因为编译系统并不检查 参数名,因此参数名是什么无所 float add (float x, float y) 谓,若把参数名x,y换成a,b效果{ float: 完全相同) Fx+y; 或 float add( return z; 编译系统将不检查参数类型和 数个数,不提倡用,检查不全面) 运行情况:输入: 36,6.5 sum=10100000
2、自定义函数 自定义函数和变量一样,在其主 调函数中也必须“先声明,后使 用” 。 如右例中的 float add(float,float); 右例中的自定义函数声明也可以 用以下两种形式: P153 float add(float x,float y); (多余,因为编译系统并不检查 参数名,因此参数名是什么无所 谓,若把参数名x,y换成a,b效果 完全相同) 或 float add( ); (编译系统将不检查参数类型和 参数个数,不提倡用,检查不全面) main( ) { float add(float ,float); /*对被调函数的声明*/ float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf(“sum=%f\n",c); } float add(float x, float y) { float z; z=x + y ; return z; } 运行情况:输入: 3.6,6.5 sum=10.100000
以下情况时,被调函数在主调函数中可以不先声 明:P154 被调函数的返回值为整型时函数值是整型 (int)或字符型(char)时系统自动按 整型说明;为了程序清晰和安全,建议都加以 声明为好 被调函数的定义出现在主调函数之前时 在所有函数定义之前,在函数的外部已做了 函数声明时 调用方式同库函数
以下情况时,被调函数在主调函数中可以不先声 明: P154 ◼被调函数的返回值为整型时函数值是整型 (int)或字符型(char)时——系统自动按 整型说明;为了程序清晰和安全,建议都加以 声明为好. ◼被调函数的定义出现在主调函数之前时. ◼在所有函数定义之前,在函数的外部已做了 函数声明时. 调用方式同库函数