第8章函数 8.4函数的调用 对被调用函数的声明和函数原型 ◆函数调用的条件 ■首先被调用的函数必须是已经存在的函数(库函数或用户自 定义函数)。 ■对库函数,应使用# include命令进行文件包含。 E对用户自定义函数,当该函数与主调用函数在同一文件中时, 一般应在主调函数中对被调用函数作声明。如例8.5: maIn float add(float x, float y) float add(f loat x, float y);( float a. b, c: float z. scanf ("%f,%f",&a,&b); z-x+y: c=add(a, b) return(z) printf ("sum is %f", c)
-11- 第8章 函数 8.4 函数的调用 对被调用函数的声明和函数原型 v 函数调用的条件 首先被调用的函数必须是已经存在的函数(库函数或用户自 定义函数)。 对库函数,应使用#include命令进行文件包含。 对用户自定义函数,当该函数与主调用函数在同一文件中时, 一般应在主调函数中对被调用函数作声明。如例8.5: main() { float add(float x, float y); float a, b, c; scanf("%f, %f", &a, &b); c=add(a, b); printf(" sum is %f", c); } float add(float x, float y) { float z; z=x+y; return(z); }
第8章函数 8.4函数的调用 在函数声明中可以不写形参名,只写形参的类型。 fA float add(float, float) 编译系统只检查参数个数和参数类型,而不检查参数名。 ◆函数定义与函数声明(P165) 区别 m联系 12
-12- 第8章 函数 8.4 函数的调用 在函数声明中可以不写形参名,只写形参的类型。 如:float add(float, float); 编译系统只检查参数个数和参数类型,而不检查参数名。 v 函数定义与函数声明(P165) 区别 联系
第8章函数 8.4函数的调用 ☆函数原型 般形式 Type Fun Name(typy1, type 2 ... Type FunName(typy1, parameter 1 type2, parameter 2 e.e.) 编译系统不检查参数名 应保证函数原型与函数首部写法一致,包括:函数类型、 函数名、参数个数、参数类型、参数顺序。 函数声明采用函数原型。 ◇说明 以前的C版本中函数声明只声明函数名和函数类型。新版本 对此兼容,但不提倡这种用法
-13- 第8章 函数 8.4 函数的调用 v 函数原型 一般形式 Type FunName(typy1, type2 ……); Type FunName(typy1, parameter1, type2, pareameter2 ……); Ø 编译系统不检查参数名。 Ø 应保证函数原型与函数首部写法一致,包括:函数类型、 函数名、参数个数、参数类型、参数顺序。 Ø 函数声明采用函数原型。 v 说明 以前的C版本中函数声明只声明函数名和函数类型。新版本 对此兼容,但不提倡这种用法
第8章函数 8.4函数的调用 如果被调用函数的定义出现在主调函数前,可以不作函数声 明。例如 float add(float x, float y float z: z=xty: return(z) main o float a, b. c scanf("%f,%",&a,8b); =add (a, b) pr intf(sum is %f", c) 14
-14- 第8章 函数 8.4 函数的调用 如果被调用函数的定义出现在主调函数前,可以不作函数声 明。例如: float add(float x, float y) { float z; z=x+y; return(z); } main() { float a, b, c; scanf("%f, %f", &a, &b); c=add(a, b); printf(" sum is %f", c); }
第8章函数 8.4函数的调用 如果已在文件的开头(所有函数定义之前),已对所调用的 函数进行了声明,则在各个主调函数中不必对所调用的函数 再作声明。例如: char letter(char, char) float f(float, float int I(float, float ma In char letter(char c1 char c2) float f(float x, float y) int I(f loat j, float k) 15
-15- 第8章 函数 8.4 函数的调用 如果已在文件的开头(所有函数定义之前),已对所调用的 函数进行了声明,则在各个主调函数中不必对所调用的函数 再作声明。例如: char letter(char, char); float f(float, float); int I(float, float); main() { … } char letter(char c1 char c2) { … } float f(float x, float y) { … } int I(float j, float k) { … }