函数调用的方式(1/2) 有如下三种方式: 1)函数语句 把函数调用作为一个语句:如例8.1中: printstar); 这时不要求函数带返回值,只要求函数完成一定的操作。 2)函数表达式 函数出现在一个表达式中,这种表达式称为函数表达式。 例如: c 2*max(a,b) 这时要求函数带一个确定的返回值以参加表达式的运算
函数调用的方式(1/2) 有如下三种方式: 1)函数语句 把函数调用作为一个语句;如例8.1中: printstar(); 这时不要求函数带返回值,只要求函数完成一定的操作。 2)函数表达式 函数出现在一个表达式中,这种表达式称为函数表达式。 例如: c = 2*max(a, b) 这时要求函数带一个确定的返回值以参加表达式的运算
函数调用的方式(2/2) 3)函数参数 函数调用作为一个函数的实参。例如: m max(a,max(b,c)); 函数调用作为函数的参数,实质上也是函数表达 式形式调用的一种,因为函数的参数本来就要求 是表达式形式
函数调用的方式(2/2) 3)函数参数 函数调用作为一个函数的实参。例如: m = max(a, max(b, c)); 函数调用作为函数的参数,实质上也是函数表达 式形式调用的一种,因为函数的参数本来就要求 是表达式形式
对被调用函数的声明 在一个函数中调用另一函数(即被调用函数)需要具备 哪些条件呢? 1)在函数调用点,需知道被调用函数的原型,不然编 译将通不过。 例如:我们前面在使用printf和scanfi函数时,需保含头文 件stdio.h,因为在该头文件中,就声明了这两个函数的 原型。又如在例8.4中,我们使用前向声明函数f。 2)被调用的函数必须是已经存在的函数(是库函数或 用户自己定义的函数)。 声明函数,只能保证在编译的时候不出错,如果在链接 时找不到函数定义,会报找不到函数定义错误
对被调用函数的声明 在一个函数中调用另一函数(即被调用函数)需要具备 哪些条件呢? 1)在函数调用点,需知道被调用函数的原型,不然编 译将通不过。 例如:我们前面在使用printf和scanf函数时,需保含头文 件stdio.h,因为在该头文件中,就声明了这两个函数的 原型。又如在例8.4中,我们使用前向声明函数f。 2)被调用的函数必须是已经存在的函数(是库函数或 用户自己定义的函数)。 声明函数,只能保证在编译的时候不出错,如果在链接 时找不到函数定义,会报找不到函数定义错误
函数的一般用法 函数的一般用法是先声明后定义。并且在函数的调用点上,必须 能看到函数的声明或者定义。 所谓函数声明,是写出原型,不写函数体。 如: int max(int x,int y); /函数声明 int max(int x,iny) /函数定义 return x >y?x y; } void myfunc() //函数定义 { /函数体为空
函数的一般用法 函数的一般用法是先声明后定义。并且在函数的调用点上,必须 能看到函数的声明或者定义。 所谓函数声明,是写出原型,不写函数体。 如: int max(int x, int y); // 函数声明 int max(int x, iny) // 函数定义 { return x > y ? x : y; } void myfunc() // 函数定义 { // 函数体为空 }
函数的嵌套调用 C语言的函数定义都是互相平行、独立的,也就是 说在定义函数时,一个函数内不能包含另一个函数。 C语言不能嵌套定义函数,但可以嵌套调用函数,也就 是说,在调用一个函数的过程中,又调用另一个函数。 如图所示: main函数 a函数 b函数 调用a函数 调用弘函数 ⑨ 结束
函数的嵌套调用 C语言的函数定义都是互相平行、独立的,也就是 说在定义函数时,一个函数内不能包含另一个函数。 C语言不能嵌套定义函数,但可以嵌套调用函数,也就 是说,在调用一个函数的过程中,又调用另一个函数。 如图所示: