找回密码
 立即注册
查看: 163|回复: 2

函数指针

[复制链接]

12

主题

11

回帖

66

积分

注册会员

积分
66
发表于 2022-9-9 20:45:58 | 显示全部楼层 |阅读模式
函数指针在什么情况下可以做参数使用?
回复

使用道具 举报

2

主题

17

回帖

85

积分

注册会员

积分
85
发表于 2022-9-14 18:33:22 | 显示全部楼层
①如果需要将“方法”传给另一个函数使用时
  比如通用型链表,处理指针域是固定的,但是数据域会根据用户需求变化,遍历链表节点就不再是固定的。所以通用型链表数据域是用户给定外,找到某个节点后,数据的节点也是用户给定
  这时就需要你传入一个函数指针进去。

②某些异步调用的操作时
   比如Linux进程的atexit()    signal()函数等,绑定这些回调函数时没有立即调用他们,而是先把这些函数指针注册到内核中的某条链表节点存放,在满足某些条件时
   比如signal()所在进程收到了指定信号,linux就会去找到之前注册的那个节点并调度你的的当前进程跳转到指定函数去。
   
   lvgl库的对象回调设置同理,只不过管理什么时候调用该回调函数的不是Linux了,而是LVGL事务处理模块
回复

使用道具 举报

0

主题

5

回帖

24

积分

新手上路

积分
24
发表于 2022-9-21 21:52:18 | 显示全部楼层
函数指针是指向函数的指针变量,即本质是一个指针变量。
你的意思是说将这个指针变量作为函数的参数进行使用,
将它传递给被调用的函数,就可以通过这个指针调用到外部的函数啦。
这就是所谓的回调。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|粤嵌技术交流空间

GMT+8, 2025-7-8 00:07 , Processed in 0.670018 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表