单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:2991|回复:0

回调函数小结

[复制链接]
ID:60266发表于 2014-8-18 02:39|显示全部楼层
正在被系统调用的函数A,假设带有函数指针参数或者系统其他地方预先定义一个函数指针变量或数组,定义:
那么正在被调用的函数A通过函数指针参数调用该函数指针参数对应的函数(或者通过预先定义的函数指针变量调用对应的函数)的这个过程就是函数回调过程,被回调的函数称为回调函数
通过函数指针临时形式参数进行函数回调的 一般我称之为 直接回调
通过全局的或预先定义的函数指针变量(数组)进行函数回调的过程 一般我称之为 函数注册回调
函数注册回调需要编写注册函数,将要被回调的函数的地址注册到全局的或预先定义的函数指针变量中去,这个过程称之为函数注册,函数被注册到全局或预先定义的函数指针变量中去后,可以被进行回调
作用:
方便层与层的隔离,方便系统功能的扩展,比如编写一个比较函数,通过回调方法编写,可以将应用层的比较函数实现无限制类型的数据比较,N种类型比较,但是具体的比较方法留给用户自定义扩展,比较函数只在自己的形式参数中提供接口(一个函数指针的形式参数变量),
再比如一个应用层与底层隔离,应用层通过参数回调底层不同的处理函数,而底层实现无限制扩展。
应用:
当一个系统或者一个函数有很多种情况要处理,或者初步代码完成后仍然会根据用户需求添加很多的针对某种情况的处理方法,这时考虑采用回调函数方法
总之为系统功能扩展、需通过一种接口处理很多种情况,上下级隔离时,就要考虑使用回调函数

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网