码迷,mamicode.com
首页 > 其他好文 > 详细

一句话解释回调函数

时间:2015-11-25 22:26:12      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

很多人都听说过“回调函数”这个物件,很多人也都明白,也有一部分像我这样的人不明白。今天吃饭的时候突然明白,说白就是一句话:传一个函数指针

就是一个函数,它的一个参数是一个函数指针.

1 return_value func(func_ptr){
2       .........  
3 }

 

#include <iostream>
using namespace std;
int generateOdd(int i){
	return 2*i+1;	
}
int print(int(*p)(int i),int K){
	int d=0;
	scanf("%d",&d);
	if(d==1){
		int i=2;
		printf("this is the number that you want to get:%d\n",p(K));
	}
	else
		printf("you mother fucker!\n");
}
int main(int agrc,char **argv){
	print(generateOdd,2);
	return 0;
}

函数功能很简单,生成一个奇数,但根据你的输入来决定打不打印这个奇数。特殊指出,有一个参数是一个函数指针。函数generateOdd的功能是生成一个奇数

有人说了,这我直接一个函数就能干出来呀,你弄个函数指针不是没事找事嘛。可实际上这就是回调函数的实质,那你问有什么用呢?用处很大,特别是你看Linux源代码,很多函数都长的这个样子,一堆指针指来指去。

我今天工作中也看到一段代码,就是用的这个。代码的功能如下:

界面上需要两个按钮,设为A,B

在界面上创建一个按钮A,当你点击按钮A时,按钮A消失,按钮B出现。

其中创建按钮的部分代码如下:

1  standardButtonWithTitle(
2             para1,
3             para2,
4             para3,
5             para4,
6             SEL_CCControlHandler(&PlayerInfoScene::editCallback),
7             para6);

其中第五个参数就是一个回调函数,功能呢和我上面那个是一样的。。当你点击时,我切换按钮。回调函数的功能大概也就是这样,我要做一件事情,但是我不知道我什么时候会做这件事情。

说得有点乱,,你们自己写过代码就会明白。

一句话解释回调函数

标签:

原文地址:http://www.cnblogs.com/markliang1994/p/4995773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!