为了账号安全,请及时绑定邮箱和手机立即绑定

怎么理解 void* (*start_routine)(void *)?

怎么理解 void* (*start_routine)(void *)?

炎炎设计 2019-03-05 11:07:01
怎么理解 void* (*start_routine)(void *)
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

你的问题没有错误。

你定义了一个函数指针。名字叫 start_routine 。

这个函数的返回值是void *(一个指针)
参数是void *(一个指针)

一般这种写法最好用typedef void* (*start_routine)(void *)
然后用start_routine当作一种类型来使用。

如:
start_routine pfoo;

调用的时候:
*pfoo(p);

查看完整回答
反对 回复 2019-03-27
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

我认为是一个叫start_routine的函数指针,指向一个以void*指针类型为参数,返回值为void*指针类型的函数

查看完整回答
反对 回复 2019-03-27
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

这是一个指向形参为void*类型,返回类型为void*类型的函数的指针,指针名是start_routine。

调用的时候应该是(*pfoo)(p)或者pfoo(p),因为函数调用优先级比解引用高,*pfoo(p)等价于*(pfoo(p)),是对函数的返回值解引用了。

查看完整回答
反对 回复 2019-03-27
  • 3 回答
  • 0 关注
  • 940 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信