回调函数:如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。-----将函数地址作为参数传递,调用时成为回调函数
异步操作:回调函数常用于处理异步操作,例如处理文件读写、网络请求、定时器等。当异步操作完成时,回调函数被触发执行,以处理操作的结果
优点:
- 提高代码的复用性和灵活性:回调函数可以将一个函数作为参数传递给另一个函数,从而实现模块化编程,提高代码的复用性和灵活性。
- 解耦合:回调函数可以将不同模块之间的关系解耦,使得代码更易于维护和扩展。
- 可以异步执行:回调函数可以在异步操作完成后被执行,这样避免了阻塞线程,提高应用程序的效率。
缺点:
- 回调函数嵌套过多会导致代码难以维护:如果回调函数嵌套层数过多,代码会变得非常复杂,难以维护。
- 回调函数容易造成竞态条件:如果回调函数中有共享资源访问,容易出现竞态条件,导致程序出错。
- 代码可读性差:回调函数的使用可能会破坏代码的结构和可读性,尤其是在处理大量数据时。
小结:代码灵活、易于扩展,但是不易于阅读、容易出错。
#include <iostream>
#include <functional>
// 回调函数类型
typedef std::function<void()> Callback;
// 执行回调函数
void performCallback(Callback callback) {
std::cout << "Performing some work..." << std::endl;
callback(); // 执行回调函数
}
// 回调函数示例
void myCallback() {
std::cout << "Callback function executed!" << std::endl;
}
int main() {
// 将回调函数作为参数传递给 performCallback
performCallback(myCallback);
return 0;
}