首页 > 社交 > 科普中国

回调函数最简单的理解方式

常驻编辑 科普中国 2022-06-11 函数   赋值   指针   定义   参数   重点   方式   地址   功能   文件   程序
LaY拜客生活常识网

好像还有点意犹未尽LaY拜客生活常识网

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~LaY拜客生活常识网

总结一下,不要被回调函数的各种高深讲解给弄晕了头脑,它实际就是将你的函数用函数指针替代了,函数指针中存放的就是你的函数地址。LaY拜客生活常识网

为了让函数指针CallBack_Ptr能指向你Led_On()的地址,你需要做一个注册功能函数CallBack_Reg(),将你要调用的函数地址传递给函数指针CallBack_Reg(Led_On);即CallBack_Ptr = Led_On。LaY拜客生活常识网

这样,在调用CallBack_Ptr 的时候就等于调用了Led_On。LaY拜客生活常识网

完美解决。。LaY拜客生活常识网

最后说明一下函数指针的定义LaY拜客生活常识网

typedef void(pFun *)(void); //第一个void表示指向的函数返回参数为空,第二个void表示输入参数为空LaY拜客生活常识网

对比一下它要指向的函数 void Led_On(void) ; 数数void数量和位置理解了吧。LaY拜客生活常识网

那如果有个函数带有输入参数怎么办呢?LaY拜客生活常识网

聪明的你一定想到了LaY拜客生活常识网

typedef void( pFun *)(unsigned char);LaY拜客生活常识网

它可以指向的函数就如同 void Led_OnOff(unsigned char ) ;LaY拜客生活常识网

使用LaY拜客生活常识网

pFun CallBack_Ptr ; //定义函数指针LaY拜客生活常识网

..........//注册函数指针LaY拜客生活常识网

CallBack_Ptr (InputDat); //使用函数指针,并传递值InputDat给了函数LaY拜客生活常识网

.........LaY拜客生活常识网

对于有返回值和多个输入参数的函数就希望聪明的你举一反三了!LaY拜客生活常识网

完毕!LaY拜客生活常识网

相关阅读:

  • tan30度等于多少(三角函数必背公式)
  • cos30度是多少(三角函数所有公式大全)
  • 如何插入函数(将多个单元格内容合并)
  • 怎么定义函数(matlab中script和function区别)
  • excel怎么用函数 电脑表格怎样设置函数公式?
  • 函数图像怎么画 二次函数图像生成器?
  • C++|深入理解智能指针
  • typescript4.7
  • 「技术干货」Linux内核代码追踪之UDP调用过程
  • 单片机时间片轮询任务调度的实现方法
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。