发新帖我要提问
12
返回列表
打印
[C语言]

函数指针有什么用呢?感觉还不如直接调用函数呢。

[复制链接]
楼主: yanghelovehuang
手机看帖
扫描二维码
随时随地手机跟帖
21
yanghelovehuang|  楼主 | 2018-7-25 09:24 | 只看该作者 回帖奖励 |倒序浏览
Prry 发表于 2018-7-24 22:13
功能单一的程序估计看不到函数指针。函数指针常用于回调、驱动分层,比如Linux驱动源码大部分都用了函数指 ...

谢谢您的回答 谢谢

使用特权

评论回复
22
qinlu123| | 2018-7-25 11:41 | 只看该作者
我作为一个业余程序员,到现在也没用过链表、函数指针啥的高级工具,不是说这些东西没用而是现有需求的制约觉得这些东西没用。我遇到过多个IIC总线SPI总线共用一套驱动的情况,由于我不会函数指针我的处理办法是把IO地址作为参数传入函数来实现一套驱动驱动多个总线。这种方法挺笨拙的,迫使我准备来学习函数指针了。

使用特权

评论回复
23
dsyq| | 2018-7-26 10:39 | 只看该作者
状态机+函数指针 在某些场合比较有效。

使用特权

评论回复
24
杨爱林林| | 2018-7-26 16:40 | 只看该作者
写OS,创建任务,用的就是函数指针,你想想,这时如果不用函数指针,难道OS还必须依赖函数的存在吗,显然不是的。

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

你可以尝试写个链表,在你没定义节点实体之前,都是指针来实现。

使用特权

评论回复
25
mcuisp| | 2018-7-26 18:38 | 只看该作者
runtime VS static

使用特权

评论回复
26
jinzhan0132| | 2018-7-26 21:38 | 只看该作者
我活动半径只有2公里,骑自行车就行,要汽车干嘛?

使用特权

评论回复
27
xuplastic| | 2018-7-27 13:55 | 只看该作者
单片机程序的特点是比较死,动态特性少

所以你用不到

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

使用特权

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则