[C语言] 函数指针有什么用呢?感觉还不如直接调用函数呢。

[复制链接]
 楼主| yanghelovehuang 发表于 2018-7-25 09:24 | 显示全部楼层
Prry 发表于 2018-7-24 22:13
功能单一的程序估计看不到函数指针。函数指针常用于回调、驱动分层,比如Linux驱动源码大部分都用了函数指 ...

谢谢您的回答 谢谢
qinlu123 发表于 2018-7-25 11:41 | 显示全部楼层
我作为一个业余程序员,到现在也没用过链表、函数指针啥的高级工具,不是说这些东西没用而是现有需求的制约觉得这些东西没用。我遇到过多个IIC总线SPI总线共用一套驱动的情况,由于我不会函数指针我的处理办法是把IO地址作为参数传入函数来实现一套驱动驱动多个总线。这种方法挺笨拙的,迫使我准备来学习函数指针了。
dsyq 发表于 2018-7-26 10:39 | 显示全部楼层
状态机+函数指针 在某些场合比较有效。
杨爱林林 发表于 2018-7-26 16:40 | 显示全部楼层
写OS,创建任务,用的就是函数指针,你想想,这时如果不用函数指针,难道OS还必须依赖函数的存在吗,显然不是的。

换句话说,像OS、文件系统、链表这类东东之所以用各种指针,因为他们是独立于实体的存在,好的中间服务包,是不占用多余RAM的,他们只提供实体接口,而实体接口,才是最终和应用层对接的接口。

你可以尝试写个链表,在你没定义节点实体之前,都是指针来实现。
mcuisp 发表于 2018-7-26 18:38 | 显示全部楼层
runtime VS static
jinzhan0132 发表于 2018-7-26 21:38 | 显示全部楼层
我活动半径只有2公里,骑自行车就行,要汽车干嘛?
xuplastic 发表于 2018-7-27 13:55 | 显示全部楼层
单片机程序的特点是比较死,动态特性少

所以你用不到

25版主果然是高手,两个单词概括了正解

tianxj01 发表于 2018-7-28 18:22 | 显示全部楼层
和变量可以是数组,也可以是自己重复定义的一串独立名称的单个变量一个道理,他们使用起来最终效果是没有区别的,但是你的程序代码一个可能很简洁,用法灵活,另一个可就只能说是简单而重复,没有什么灵活性可言了。
这个类比,基本上和你用函数直接调用和采用函数指针的方法区别一样,一个是可以用参数来控制函数调用的过程走向,而另一个就只能通过if  switch 来一个一个进行切换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部