❶ CALLBACKCallBack:回调函数
回调函数,本质上是通过函数指针间接调用的函数。当一个函数的指针被传递给另一个函数,并在特定事件或条件满足时由后者调用,以响应这些事件,我们称其为回调函数。这种机制并非由被调用方主动执行,而是由调用方触发的。
回调函数的应用场景常见于分离调用者与被调用者职责的场合。例如,编写一个通用的排序库时,不希望在函数内部硬编码排序逻辑,而是让用户自定义排序方法。或者,当需要处理多种数据类型时,回调函数能灵活地选择不同的处理方式。此外,回调还用于通知机制,如Windows API中的SetTimer函数,它会在指定时间后通过回调通知程序事件已发生。
EnumWindow()函数是另一个使用回调的例子,它枚举屏幕上的窗口,并调用用户提供的处理程序。处理程序的返回值决定了枚举的继续或停止,而EnumWindow并不关心具体操作细节。
尽管回调函数源于C语言,但在C++中,除非与C代码接口或已有的回调接口交互,否则建议使用虚拟方法或functor,以提高代码的灵活性和可维护性。总的来说,回调函数是一种强大的编程工具,它在处理异步事件和分发任务时发挥着重要作用。