什么是回调函数?

回调函数。
1、什么是回调函数?
先定义好函数A(喝水过程)的过程,再将这个函数A(喝水过程)作为另外一个函数B(爬山)的参数,然后在函数B(爬)执行过程中回过头来调用函数A(喝水过程),这个函数A就称之为回调函数。

2、回调函数基本框架

#include <stdio.h>

int funB(funA)
{

	爬山过程
	回过头调用funA这个参数。
}

int funA ()
{

		先定义好函数A的实现过程。
		喝水的动作
}


int main()
{

	funB(funA) ;
	
}

回调函数核心: 先写好你的功能函数,然后把这个功能函数作为另外一个函数的参数就可以。

==============================================================================

例题:从键盘中获取两个数字,求出两个的值的和。要求使用回调函数来完成。
1)通过分析,求和功能作为回调函数。

int add_fun(int x, int y)
{

	return x + y ;
}

2)在main函数中调用函数,把回调函数作为该函数的参数,进行求和。

int main()
{
	int a, b,ret;
	scanf ("%d %d", &a,&b) ;
	ret = my_fun (a, b,add_fun) ;
	printf ("ret = %d\n" , ret) ;return 0;
}


3)写函数的实现过程。
my _fun (int x, int y, int (*p)(int ,int))
{		  
		    x=a
			y=b
			p=&add_fun

		这就是回调函数的写法
}

问题一:传递了一个函数过来,形式参数应该怎么写?

分析:在C语言中,传递一个函数作为参数,其实就是传递了函数的地址过来,并没有传递了整个函数过来,在形式参数中只需要写一个指针变量来接住这个函数地址就可以。

问题二:接住该函数的指针变量是怎么写?是固定的写法?

不是固定,传递不同的类型函数过来,指针变量的写法是不一样。不像整型变量一样,无论你传递什么整型数据过来,我都是写一个int xo按照以下的步骤进行分析即可。

1)先写一个 *
2)在*后面加上一个变量名字,然后使用一个圆括号将结果括住。(*p)
3)确认你传递的函数是长什么样子的? int add_fun(int x, int y)
4)将第3步的结果的函数名与形式参数的变量名去掉 int add_fun(int x, int y) --> int (int ,int)
5)将第2步的结果写在第4步结果的返回值类型与形式参数列表之间 int (*p) (int ,int)
最终得到的结果:int (*p)(int ,int) -> 函数指针变量

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挨踢玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值