机机制编辑
⑴定义一个回调
函数;
⑶当特定的事件或条件发生的时候,调用者使用
函数指针调用回调函数对事件进行处理。
2意义编辑
因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的
被调用函数。简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。
想知道回调
函数在实际中有什么作用?先假设有这样一种情况:我们要编写一个库,它提供了某些
排序算法的实现(如
冒泡排序、
快速排序、
shell排序、shake排序等等),为了能让库更加通用,不想在函数中嵌入排序逻辑,而让使用者来实现相应的逻辑;或者,能让库可用于多种
数据类型(int、float、string),此时,该怎么办呢?可以使用
函数指针,并进行回调。
回调可用于通知机制。例如,有时要在A程序中设置一个
计时器,每到一定时间,A程序会得到相应的通知,但通知机制的实现者对A程序一无所知。那么,就需一个具有特定原型的
函数指针进行回调,通知A程序事件已经发生。实际上,
API使用一个回调
函数SetTimer()来通知
计时器。如果没有提供回调
函数,它还会把一个消息发往程序的
消息队列。