函数指针和回调函数

原创 2016年08月30日 21:44:40

工作中经常用到回调函数这个东西,用了一段时间后也记录一下自己对回调函数的理解。
当我们调用第三方的库时,不论是windows下的dll还是linux下的so库,很多接口都会把一个函数当成参数传递进去,这个函数一般就叫做回调函数,传递的过程一般也就是绑定回调的过程。用个栗子来说明一下吧,这样更清晰一些,比如,有一个第三方的接口sdk_func,我知道它的作用是处理数据,并且能够把处理到的偶数告诉我,但是我不知道它什么时候会处理到偶数,那么我就给它传递一个函数(就是回调函数)吧,它的作用就是告诉sdk_func:当你处理到偶数时,调用我传递给你的这个函数,我就知道了。这样,当我注册好回调后,我就可以放心去干其他事了,因为当sdk_func处理到偶数时,它会主动告诉我。

用代码来表示一下:

#include "stdafx.h"

typedef int (*p_func)(int a); //函数指针

int cb_func(int a) { //回调函数
	printf("%d\t",a);
	return 0;
}

int sdk_func(p_func func){ //可以理解为第三方库,通常我们不需要知道它的内部逻辑,知道功能就行了。
	for (int i =0; i<= 100 ; ++i) {
		if (i % 2 == 0) {
			func(i);
		}
	}
	return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
	sdk_func(cb_func); //调用第三方库,并将回调函数传递进去
	int a;
	scanf("%d",&a);
	return 0;
}
当然,第三方库的接口中,和回调函数一起传递的一般还有用户数据:udata,在第三方接口内这个udata也会当做回调函数的参数回传过去,这样方便我们在回调函数中做一些自己的操作。

重学C++Primer笔记9---回调函数与函数指针的应用

1 函数指针—指向函数的指针  函数指针是指向函数而非对象的指针。像其他指针一样,函数指针也指向某个特定的类型,函数类型由其返回类型以及形参表确定,而与函数名无关。例如:bool (*pf)(cons...
  • FreeApe
  • FreeApe
  • 2015年10月14日 13:35
  • 949

【C语言】函数指针与回调函数

在C语言中:指针是C语言的特色,有着各种各样的指针,普通的变量指针,常量指针,数组指针,指针数组,函数指针,指针函数。我们就讲一下函数指针与回调函数吧首先关于函数指针,其实很简单。    对于一个函数...

函数指针--Nginx和Redis中两种回调函数写法

Nginx和Redis中两种回调函数写法 #include //仿Nginx的写法 //定义函数指针类型 typedef void (*ngx_connection_handler_pt)(int...
  • unix21
  • unix21
  • 2013年08月11日 16:41
  • 1251

回调函数(函数指针的应用)

#  本篇博客主要阐述回调函数,函数指针的概念,并且使用回调函数实现冒泡排序,可以 实现不同数据类型的排序。 接下来就切入正题吧!   # 回调函数:                       ...
  • bitboss
  • bitboss
  • 2016年05月03日 19:41
  • 1303

基础知识---const/typedef/函数指针/回调函数

转自:http://www.cnblogs.com/ezhong/archive/2011/04/15/2171478.html 变量:       左值:(lvalue),左值可以出现在...

函数指针及回调函数

1.什么是函数指针? void f();// 函数原型 上面的语句声明了一个函数,没有输入参数并返回void。那么函数指针的声明方法如下:void (*) (); 让我们来分析一下,左边圆括弧中...
  • logogcn
  • logogcn
  • 2012年08月17日 23:57
  • 499

函数指针与软件设计--------回调函数

函数指针与软件设计--------回调函数记得一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手。当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longj...

函数指针回调函数

C/C++之回调函数      今天讨论下C/C++中的回调函数。      在理解“回调函数”之前,首先讨论下函数指针的概念。 函数指针 (1)概念:指针是一个变量,是用来指向内存地址的...

c 函数指针的定义 和 C++回调函数的使用

****************************************************************************************************...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数指针和回调函数
举报原因:
原因补充:

(最多只允许输入30个字)