回调函数---第二种讲解方式

"回调函数详解" 回调函数是一种特殊的函数,它不是程序员显式调用的函数,而是通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。函数指针是指向函数代码的首地址的指针变量,它可以用来调用函数。 函数指针的声明方法是:`void (*)(void)`,其中`void`是函数的返回类型,`(*)`是函数指针的声明关键,`void`是函数的入口参数类型。在定义函数指针时,需要注意函数指针和它指向的函数的参数个数和类型都应该是一致的,函数指针的类型和函数的返回值类型也必须是一致的。 函数指针可以用来调用函数,通过函数指针可以间接调用函数。例如,`int (*f)(int x)`是一个函数指针,它指向一个返回整型的函数,该函数有一个整型参数。可以将函数指针赋值为一个函数,例如`f = func;`,然后通过函数指针调用函数,例如`(*f)(x)`。 回调函数的应用非常广泛,在编程中经常用来实现回调机制。例如,在 GUI 编程中,按钮的点击事件可以通过回调函数来处理。在网络编程中,回调函数可以用来处理网络请求的结果。 下面是一个简单的回调函数示例,用于找出一组数字中的最大数: ```c int f(int x, int y) { return x > y ? x : y; } int main() { int a, b; int (*p)(); p = f; scanf("%d", &a); for (int i = 1; i < 9; i++) { scanf("%d", &b); a = (*p)(a, b); } printf("The Max Number is: %d\n", a); return 0; } ``` 这个示例中,`f`是一个回调函数,它将两个整型参数比较并返回最大值。`p`是一个函数指针,它指向函数`f`。在`main`函数中,我们首先将`p`赋值为`f`,然后通过`p`调用函数`f`来找出最大数。 回调函数是一种强大的编程技术,它可以帮助我们实现复杂的编程逻辑。但是,使用回调函数需要小心,因为它可能会引起函数调用栈溢出或其他问题。






























剩余13页未读,继续阅读

- 小付少2013-01-16示例比较有用。

- 粉丝: 165
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 地铁车站大跨度深基坑支护技术的研究与应用.doc
- 通信设备工程验收规范.doc
- 内审检查表(QR-8.2-05).docx
- 海岛度假村岩土工程勘察.doc
- 造价员入门--桩与地基基础工程.ppt
- 基于JSP在线音乐网的方案设计书与实现大学本科方案设计书.doc
- 5G时代背景下教师网络研修的创新探究.docx
- 数据库系统概论期末试题及复习资料重点知识.doc
- 第4章ANSYS边坡工程应用实例分析.doc
- OAuth2学习DotNetOpenAuth部分源码研究分析.doc
- 《建筑工程计价》模拟试卷答案-杭州.doc
- 如何使用PHOTOSHOP处理图片让宝贝图片更清晰.doc
- 某广场钢筋工技术交底.doc
- 电子工程自动化控制智能技术研究.docx
- VB超市管理系统毕业设计论文.doc
- 5幕墙技术保证措施.doc


