Linux回调函数的应用---已经验证
来源:互联网 发布:国家电网南瑞集团知乎 编辑:程序博客网 时间:2024/05/21 13:21
如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这称为回调函数(Callback Function)。例如qsort(3)
和bsearch(3)
。
表 24.7. 回调函数示例:void func(void (*f)(void *), void *p);
提供一个回调函数,再提供一个准备传给回调函数的参数。
把回调函数传给参数
f
,把准备传给回调函数的参数按void *
类型传给参数p
在适当的时候根据调用者传来的函数指针
f
调用回调函数,将调用者传来的参数p
转交给回调函数,即调用f(p);
以下是一个简单的例子。实现了一个repeat_three_times
函数,可以把调用者传来的任何回调函数连续执行三次。
例 24.7. 回调函数
/* para_callback.h */#ifndef PARA_CALLBACK_H#define PARA_CALLBACK_Htypedef void (*callback_t)(void *);extern void repeat_three_times(callback_t, void *);#endif
/* para_callback.c */#include "para_callback.h"void repeat_three_times(callback_t f, void *para){ f(para); f(para); f(para);}
/* main.c */#include <stdio.h>#include "para_callback.h"void say_hello(void *str){ printf("Hello %s/n", (const char *)str);}void count_numbers(void *num){ int i; for(i=1; i<=(int)num; i++) printf("%d ", i); putchar('/n');}int main(void){ repeat_three_times(say_hello, "Guys"); repeat_three_times(count_numbers, (void *)4); return 0;}
阅读全文
0 0
- Linux回调函数的应用---已经验证
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- 回调函数应用
- 回调函数的简单应用
- Flex 回调函数的应用
- JS回调函数的应用
- 回调函数的分析及应用
- 回调函数的分析及应用
- TLS回调函数的应用
- WorkDay 30 :回调函数的应用
- 回调函数的简单应用
- Linux回调函数
- Linux 回调函数
- Linux 回调函数
- linux 回调函数
- 不一样的Toast
- 多人麻将 加入房间 模块(后端)
- 优化算法——凸优化的概述
- LRU缓存的javascript实现
- 第四天java学习笔记
- Linux回调函数的应用---已经验证
- 单点登录原理与简单实现
- linux登录小问题
- 强引用、弱引用、软引用、虚引用的理解
- scipy.sparse学习
- iOS Class结构体分析~详解
- 微信开发MySQL篇(一)
- BZOJ 3685 普通van Emde Boas树
- Android开发环境搭建-Android Studio