OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3568|回复: 3

串口usmart代码疑问

[复制链接]

12

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-6-10
在线时间
36 小时
发表于 2018-11-26 22:08:30 | 显示全部楼层 |阅读模式
1金钱
1.png 代码如图,就是看不懂函数指针调用方式,比如res=(*(u32(*)())usmart_dev.funs[id].func)();里面的*(u32(*)())这是什么意思,为什么要这样写呢?       

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-27 02:31:47 | 显示全部楼层
回复

使用道具 举报

12

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-6-10
在线时间
36 小时
 楼主| 发表于 2018-11-27 08:44:16 | 显示全部楼层

个人C语言水平太差了,哈哈
回复

使用道具 举报

12

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-6-10
在线时间
36 小时
 楼主| 发表于 2018-11-27 11:27:00 | 显示全部楼层
应该这样理解,(u32(*)()是返回类型为U32的函数指针,(u32(*)())usmart_dev.funs[id].func是将usmart_dev.funs[id].func强制转换为U32函数指针类型(*(u32(*)())usmart_dev.funs[id].func)是得到该指针区域的函数,(*(u32(*)())usmart_dev.funs[id].func)()是函数调用。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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