void* fnptr; (void *)fnptr; void (*p) (int ,int)之前的区别

adventurous 2012-03-25 12:33:41
如题,我在一个结构体中看到了据说是函数指针的这样的声明,void* fnptr;,可以不要参数吗?
然后调用这个结构体的时候在函数指针的位置上写了(void *)fnptr;void加上括号了,这样声明和第一种有什么不同,但我在书上看到函数指针的声明是如下:void (*p) (int ,int),求解他们之间的区别。
...全文
283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
0黄瓜0 2012-03-25
  • 打赏
  • 举报
回复
void (*p) (int ,int)//函数指针。
pathuang68 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 adventurous 的回复:]

引用 1 楼 pengzhixi 的回复:

void* fnptr这个是void指针类型,它可以接受任何类型的指针。
(void *)fnptr是用来强fnptr这个指针类型强制转换为void*类型

意思是不是(void *)fnptr这个函数的返回类型强转为void*了?
[/Quote]
是的。
Cql_liliang 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]

void* fnptr这个是void指针类型,它可以接受任何类型的指针。
(void *)fnptr是用来强fnptr这个指针类型强制转换为void*类型
[/Quote]
(void*)fnptr的意思是把fnptr指针强制转换成void* 型,这不能说明这个fnptr一定是函数指针,正如你所说的,void (*fn)(int , int),说明这个是指针函数,函数名为fn , 有两个int型参数 ,并且返回值为void
adventurous 2012-03-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]

void* fnptr这个是void指针类型,它可以接受任何类型的指针。
(void *)fnptr是用来强fnptr这个指针类型强制转换为void*类型
[/Quote]
意思是不是(void *)fnptr这个函数的返回类型强转为void*了?
pengzhixi 2012-03-25
  • 打赏
  • 举报
回复 1
void* fnptr这个是void指针类型,它可以接受任何类型的指针。
(void *)fnptr是用来强fnptr这个指针类型强制转换为void*类型

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧