关于typedef定义函数指针的问题

wangyangkobe 2011-07-22 11:26:07
typedef定义函数指针一般都用这种形式的:

typedef int (*handler_t) (int);
handler_t signal(int signum, handler_t handler);


但是今天再看Linux信号这一章的时候,看到这样的函数定义:

typedef int handler_t (int);
handler_t* signal(int signum, handler_t *handler);


个人不太明白这这两者有什么区别,还是两者是一样的?求助!
...全文
179 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjjjuniniho 2011-07-29
  • 打赏
  • 举报
回复
这两个本质上没区别,都是返回一个函数指针只是表达方式不一样
interlace2010 2011-07-22
  • 打赏
  • 举报
回复
好像一样哎
bdmh 2011-07-22
  • 打赏
  • 举报
回复
bdmh 2011-07-22
  • 打赏
  • 举报
回复
typedef int handler_t (int);定义handler_t方法,返回int型,参数是int型

handler_t* signal(int signum, handler_t *handler);
signal方法,返回handler_t*
Jxiaoshen 2011-07-22
  • 打赏
  • 举报
回复
typedef int (*foo)(int);//foo是函数指针
foo pfoo;//所以这里pfoo是函数指针变量

typedef int foo(int); //foo是函数类型
foo *pfoo;//所以这里pfoo也是函数指针变量
所以一样的
ForestDB 2011-07-22
  • 打赏
  • 举报
回复
typedef int foo(int);
typedef int (*bar)(int);
foo是一函数类型;bar是函数指针类型。

64,654

社区成员

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

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