经过学习后的理解:
回调函数分为同步和异步;
同步的概念:在一个函数A中调用了回调函数,那么在回调函数执行完之前,不会继续往下执行A中的内容,等待回调函数执行完毕之后,才会继续执行回调函数下面的代码;
异步:在一个函数中调用回调函数,不等待回调函数执行完成,会继续执行回调函数下面的代码,回调函数会继续执行;
实现异步的方法:可以使用创建一个新的线程的方式在回调函数中去调用要执行的函数;
所以回调函数不一定是异步执行的,而是调用的函数是别的地方编写的,利用指针就能去调用想要调用的函数;
点击此处:实现同步和异步的代码示例
回调函数的真正作用:
我看了一个博主写的很清晰,希望看的人能有所收获
包括
- 什么是回调函数
- 为什么使用回调函数?因为它和普通函数的主要区别:实现了函数间的解耦;
- 怎么使用回调函数?
https://www.runoob.com/w3cnote/c-callback-function.html
下面是我自己写的一个简答的回调函数
void B (void)
{
printf("这是回调函数\r\n");
}
void C (void (*callback)())
{
callback();
printf("这是C\r\n");
}
int main (void)
{
C(B);
printf("这是主函数\r\n");
}
输出结果:
这是回调函数
这是C
这是主函数