10.回调函数的定义及作用,函数指针和指针函数的区别
简言之,回调函数是一种可以作为参数传递给其他函数的函数,当上层函数触发了某一个特定条件时或者执行了某个操作时,该函数就会调用回调函数。在C/C++中,回调函数通常是函数指针的一种常见使用方式(在其他语言因为没有指针的概念所以传参会灵活简洁一些)。
回调函数主要用在异步操作、事件驱动编程、轮询、递归操作等情况。例如:
1)异步操作:当需要执行一个耗时操作(如文件IO或网络等待)时,可以使用回调函数来执行该耗时操作返回后将要执行的操作,此时主线程就可以执行其他的工作,无需一直等待该耗时操作的返回。
2)事件驱动编程:在GUI开发、网络编程中,回调函数一般会作为界面例如按钮点击、键盘输入或者网络消息等事件的响应执行。
3)轮询:在某些情况下,程序需要定期检查某个条件是否满足。例如,一个程序可能需要定期检查某个文件是否存在或某个网络连接是否仍然活动。在这些情况下,可以使用回调函数来定义当条件满足时要执行的操作。
4)递归:在递归函数中,回调函数可以用来处理递归函数的结果,这样就可以使递归函数在每一次返回时可以执行不完全相同的操作。
函数指针本质上是一个指针,其跟普通指针一样,存储的仍然是一个地址,通过这个地址,就可以间接的调用这个函数。需要注意的是,函数指针的返回类型和参数列表(包含参数类型和参数数量)必须与其指向的函数的返回类型和参数列表完全一致。
函数指针的定义方式为:
i

最低0.47元/天 解锁文章
1327

被折叠的 条评论
为什么被折叠?



