C:函数指针

金来 2003-09-26 11:51:27
看到一个void *(*start_routine)(void *);
而以前学的是int *a();
帮忙解释一下这个指针,THANKS A LOT!
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2003-09-26
  • 打赏
  • 举报
回复
对这类问题头大的,看《The C Programming Language》。
其实非常简单,以楼主的问题为例:
1、start_routine是标识符
2、*start_routine说明start_routine是指针。是什么指针?
3、(*start_routine)()说明start_routine是函数指针。函数原型是什么?
4、(*start_routine)(void *)说明函数的参数类型是void*
5、void *(*start_routine)(void *);说明函数的返回值类型是void*
linaxing 2003-09-26
  • 打赏
  • 举报
回复
void *(*start_routine)(void *);
参数为void *型,返回值为void *型的函数指针start_routine。

int *a();
返回值是int *型的函数a;
金来 2003-09-26
  • 打赏
  • 举报
回复
THANKS
blh 2003-09-26
  • 打赏
  • 举报
回复
给你举个例子,或许你就明白了

void *a(void*);

typedef void *(*start_routine)(void *);

start_routine ptr = a;
blh 2003-09-26
  • 打赏
  • 举报
回复
给你举个例子,或许你就明白了

void *a(void*);

typedef void *(*start_routine)(void *);

start_routine ptr = a;
fierygnu 2003-09-26
  • 打赏
  • 举报
回复
C语言里实现多态。你可以看看qsort函数的使用。
金来 2003-09-26
  • 打赏
  • 举报
回复
刚刚看了一篇文章,会用了,就是还不知道用在什么地方
金来 2003-09-26
  • 打赏
  • 举报
回复
THANKS A LOT;
还想再问一下,函数指针主要用来干嘛?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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