C语言函数指针之回调函数及其应用场景.docx
《C语言函数指针之回调函数及其应用场景.docx》由会员分享,可在线阅读,更多相关《C语言函数指针之回调函数及其应用场景.docx(5页珍藏版)》请在优知文库上搜索。
1、1什么是回调函数?首先什么是“回调呢?我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回调。如果代码立即被执行就称为同步回调,如果过后再执行,则称之为异步回调。回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。2为什么要用回调函数?因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条
2、件的被调用函数。简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。主函数Call库函数intCalIbackOUK回调函数/TODOreturn0;intmain()/主函数TODO1.ibrary(Callback);HK库函数通过函数指针进行回调/TODOreturn0;回调似乎只是函数间的调用,和普通函数调用没啥区别。但仔细看,可以发现两者之间的一个关键的不同:在回调中,主程序把回调函数像参数一样传入库函数。这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?并且当库函数很复
3、杂或者不可见的时候利用回调函数就显得十分优秀。3怎么使用回调函数?intCallback_l(inta)/回调函数1printf(,Hello,thisisCallback_l:a=%d”,a);return0;intCallback_2(intb)/V回调函数2printf(,Hello,thisisCallback_2:b=%d,b);return0;intCallback_3(intc)/回调函数3printf(Hello,thisisCallback_3:c=%d,c);return0;intHandle(intx,int(*Callback)(int)/M26工作状态集合函数M26_
4、WorkStatus_TypeDefM26_WorkStatus_Tab=GPRS_NETWORK_CLOSE,M26_PWRKEY_Off,模块关机GPRS-NETWORK-OPEN,M26_PWRKEY_On,模块开机GPRS_NETWORK_Start,M26_WorkJnit,/管脚初始化,/连接调度中心), 等待调度中心回复),/连接前置机,/等待前置机回复GPRS-NETWORK-CONF,M26_NET_Config,/AT指令配置GPRS_NETWORK_LINK_CTC,M26_LINK_CTCGPRS_NETWORK_WAIT_CTC,M26_WAIT_CTCGPRS_NE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 函数 指针 调函 及其 应用 场景
