OpenEdv-开源电子网

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

问个C语言问题

[复制链接]

87

主题

331

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2016-3-26
在线时间
116 小时
发表于 2017-5-11 23:07:32 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 zhoujianwen 于 2017-5-11 23:12 编辑

1,void*指针可以强制转换为其他类型指针吗?2,其他类型指针可以强制转换成void*指针类型吗?
3,还是两种都可以互转?
(*(u32(*)())(void*)函数名)(参数1,...)这个语句是取函数地址还是函数地址的值?

最佳答案

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

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3863
金钱
3863
注册时间
2016-6-11
在线时间
710 小时
发表于 2017-5-11 23:07:33 | 显示全部楼层
回复

使用道具 举报

87

主题

331

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2016-3-26
在线时间
116 小时
 楼主| 发表于 2017-5-12 08:44:09 | 显示全部楼层

这个可以,说的是可以互转吗,还有后面那个语句是啥呢?
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2016-8-13
在线时间
27 小时
发表于 2017-5-12 10:32:59 | 显示全部楼层
zhoujianwen 发表于 2017-5-12 08:44
这个可以,说的是可以互转吗,还有后面那个语句是啥呢?

后面的部分,先看(void*)fun:是把fun的返回值的类型强制转换为void *,即无返回值的指针类型,而(u32(*)())就是一个函数类型,具体不多说了,而最前面的*,则只是函数调用的一种方式,这个书本有介绍,可直接用函数名,也可加一个*号。总的来说,就是调用fun函数时,把fun的返回值转换为void *这个类型,接着再把fun转换后的再转为(u32(*)())这样的函数类型。
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2016-8-13
在线时间
27 小时
发表于 2017-5-12 10:33:32 | 显示全部楼层
liu_z-w 发表于 2017-5-12 10:32
后面的部分,先看(void*)fun:是把fun的返回值的类型强制转换为void *,即无返回值的指针类型,而(u32(* ...

我也只是按照自己理解, 不确定是否真的就准确。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 03:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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