文档详情

C语言回调函数讲解.doc

发布:2017-06-07约小于1千字共2页下载文档
文本预览下载声明
回调函数 什么是回调函数? 回调函数就是函数指针的一种用法! 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。 回调函数怎么开发?怎么使用? 回调函数是一个程序员不能显式调用的函数,要想使用就必须先定义函数指针! For example, void fun(); /*声明一个函数原型*/ void (*fun)(); /*声明一个函数指针*/ 获取一个函数指针大小的方法: unsigned psize = sizeof(void(*)()); 为函数指针声明类型定义: typedef void (*pfun)(); 回调函数的作用,应在什么情况下使用? void (*p) (); //p是指向某函数的指针 有了指针变量便可以赋值,值的内容是署名匹配的函数名和返回类型。 For example void?func()? {? /*?do?something?*/? }?? p?=?func;? p的赋值可以不同,但一定要是函数的地址,并且署名和返回类型相同。传递回调函数的地址给调用者。 ? 现在可以将p传递给另一个函数(调用者)-?caller(),它将调用p指向的函数,而此函数名是未知的:? void?caller(void(*ptr)())? {? ptr();?/*?调用ptr指向的函数?*/?? }? void?func();? int?main()? {? p?=?func;?? caller(p);?/*?传递函数地址到调用者?*/? }
显示全部
相似文档