为什么要用回调函数 回调函数和普通函数有什么区别?
回调函数和普通函数有什么区别?
普通函数和回调函数的调用方式主要不同:
1。调用普通函数:调用程序调用普通函数后,程序执行立即转为被调用函数执行,然后返回调用程序继续执行,直到被调用函数执行为止。从调用程序的角度来看,这个过程是“call--> wait for the called function to finishe executing--> continue executing”。
2. 调用回调函数:调用程序调用回调函数后,立即返回并继续执行,无需等待函数执行。这样,调用程序和被调用函数被同时执行。当被调用函数完成时,被调用函数将依次调用预先指定的函数,通知调用程序函数调用结束。这个过程称为回调,它是回调函数名称的来源。扩展信息
调用方法
普通函数,当被其他函数调用时,函数名直接写在调用者内部
回调函数,通常作为参数传递给调用者,调用者不知道自己在调用什么
另外,回调函数主要用于多线程的情况
普通函数,回调函数是由其他函数调用的,区别在于:例如:
void func1(){}
void func2(){}
typedef void(*FP)//声明函数指针,FP表示空参数,并返回void
void funccaller1(){
//这里func1可以看作是普通函数
func1()//这里funccall1清楚地知道它调用了func1
}
void Funccaller2(FP funcptr){
funcptr()//这里funccall2不知道它在调用什么,只知道它调用了参数为空,返回类型为void
}
void Funccaller3(){
//这里,funccaller2是一个普通函数,func1是一个回调函数
funccaller2(func1)//调用funccaller2,参数是func1
//这里,funccaller2是一个普通函数,其中func2是回调函数
funccaller2(func2)//调用funccaller2,参数为func2
}
]普通函数与回调函数的区别:调用普通函数:调用程序调用普通函数后,程序执行立即转为被调用函数执行,然后返回到调用程序继续执行,直到被调用的函数被执行为止。从调用程序的角度看,这个过程是“call-->等待被调用函数执行完毕-->继续执行”调用回调函数:调用程序调用回调函数后,不等待函数执行完毕,而是立即返回并继续执行。这样,调用程序和被调用函数被同时执行。当被调用函数完成时,被调用函数将依次调用预先指定的函数,通知调用程序函数调用结束。这个过程称为回调,它是回调函数名称的来源。
为什么要用回调函数 回调函数是什么 callback回调函数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。