串口usmart代码疑问

2019-07-20 04:53发布

1.png 代码如图,就是看不懂函数指针调用方式,比如res=(*(u32(*)())usmart_dev.funs[id].func)();里面的*(u32(*)())这是什么意思,为什么要这样写呢?       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 10:29
 精彩回答 2  元偷偷看……
luoqice1
2楼-- · 2019-07-20 10:37
正点原子 发表于 2018-11-27 02:31
函数指针了解下。

个人C语言水平太差了,哈哈
luoqice1
3楼-- · 2019-07-20 13:25
应该这样理解,(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)()是函数调用。

一周热门 更多>