C++面试八股-基础(二)

10.回调函数的定义及作用,函数指针和指针函数的区别

        简言之,回调函数是一种可以作为参数传递给其他函数的函数,当上层函数触发了某一个特定条件时或者执行了某个操作时,该函数就会调用回调函数。在C/C++中,回调函数通常是函数指针的一种常见使用方式(在其他语言因为没有指针的概念所以传参会灵活简洁一些)。

        回调函数主要用在异步操作、事件驱动编程、轮询、递归操作等情况。例如:

        1)异步操作:当需要执行一个耗时操作(如文件IO或网络等待)时,可以使用回调函数来执行该耗时操作返回后将要执行的操作,此时主线程就可以执行其他的工作,无需一直等待该耗时操作的返回。

        2)事件驱动编程:在GUI开发、网络编程中,回调函数一般会作为界面例如按钮点击、键盘输入或者网络消息等事件的响应执行。

        3)轮询:在某些情况下,程序需要定期检查某个条件是否满足。例如,一个程序可能需要定期检查某个文件是否存在或某个网络连接是否仍然活动。在这些情况下,可以使用回调函数来定义当条件满足时要执行的操作。

        4)递归:在递归函数中,回调函数可以用来处理递归函数的结果,这样就可以使递归函数在每一次返回时可以执行不完全相同的操作。

        函数指针本质上是一个指针,其跟普通指针一样,存储的仍然是一个地址,通过这个地址,就可以间接的调用这个函数。需要注意的是,函数指针的返回类型和参数列表(包含参数类型和参数数量)必须与其指向的函数的返回类型和参数列表完全一致。

        函数指针的定义方式为:

i
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值