函数的嵌套调用

写在最前面

在C语言中,函数是独立的,没有任何一个函数依靠另一个函数运行,而是一个函数中调用另一个函数(注意:依靠不等于调用),也就是说函数不能嵌套定义,但可以嵌套调用函数。

举个例子,什么是嵌套定义:

#include <stdio.h>
int main(){
	int functiona();//声明一个名为functiona的函数
	int functionb();//声明一个名为functionb的函数
	functiona();//调用functiona函数 
	functionb();//调用functionb函数 
	return 0;
} 
//开始定义functiona的函数
int functiona(){
		printf("我是functiona的函数"); 
	//开始定义functionb的函数
	int functionb(){
		printf("我是functionb的函数"); 	
		return 0;
	}
	return 0;
}

上面这个例子是个错误的示范,在实际的开发中绝对不能这样定义。

嵌套调用

定义:

在调用一个函数的过程中调用另一个函数。

举个例子:

在main函数中调用了a函数之后,在执行a函数的过程中又调用了b函数,在b函执行完成后又返回到a函数中调用b函数的下一句执行,在a函数执行完之后又返回到main函数中调用a函数的下一句执行,知道整个程序执行完成。

图片[1]-函数的嵌套调用-挨踢星球
嵌套过程

食用代码:

由于调用过程已经在定义里面说明了,所以直接上食用代码:

#include <stdio.h>
int main(){
	int functiona();//声明functiona函数 
	int functionb();//声明functionb函数 
	printf("我是main函数,即将调用functiona函数\n\n");
	functiona();//调用functiona函数
	printf("我是main函数,我已经执行完成了\n");
	return 0; 
} 
//开始定义functiona函数
int functiona(){
	printf("我是functiona函数,我将要调用functionb函数\n\n");
	functionb(); 
	printf("我是functiona函数,我将要返回main函数\n\n");
	return 0;
} 
//开始定义functionb函数 
int functionb(){
	printf("我是functiona函数,我已经执行完成了,将要返回functiona函数\n\n");
	return 0;
}

在举一个实例,求四个数中的最大值:

#include <stdio.h>
int main(){
	int max;
	int max4(int a,int b,int c,int d);
	int max2(int x,int y);
	max=max4(85,0,66,305);
	printf("最大的数为:%d",max);
	return 0;
}
int max4(int a,int b,int c,int d){
	int x,y,z;
	x=max2(a,b);
	y=max2(c,d);
	z=max2(x,y);
	return z;
}
int max2(int x,int y){
	int max;
	max =x>y?x:y;
	return max;
}

总结

在上述程序中,在main函数中首先调用max4函数并将四个整数带入函数,其次在max4函数中调用max2函数进行两两比较,将最大值返回到max4函数中储存,最后将比较的结果返回到main函数中的max变量中储存并输出。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容