typedef 的用法求解

henufyh 2016-04-30 04:14:12
我在K&R手册上面看到了typedef的这样的用法

typedef int (*PFI)(char *, char *)

我能理解他说的: PFI 是一个指向函数的指针,该指针具有两个char * 类型的参数

但是他还说 该函数的返回类型为 int 我就不理解了

求大神能讲解
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2016-05-01
  • 打赏
  • 举报
回复
int 是整个类型定义的一个局部 int (*PFI)(char *,char *); 为一个完整的函数指针定义, 指针为 PFI, 类型为 int (*)(char *,char *); 所以 typedef int (*PFI)(char *,char *); 定义PFI为 函数指针类 int (*)(char *,char *); 指向 返回值为 int,两个参数都是 char * 类型 的函数指针。 去掉 typedef 后,定义类型就变成定义对象,这里是函数指针 加回 typedef 这就变成定义类型了,对象名就变成类型名了(别名), typedef类型。就是 去掉typedef 后,所定义的对象的类型。
列子汤问 2016-05-01
  • 打赏
  • 举报
回复
一般一个带返回值的函数肯定是这样写的:
int  func(char*, char*)
那么我们要定义这个函数的指针,下面的内容就好理解了。

typedef  int  (*PFI)(char *, char *);

PFI  fun;
fun = func;
paschen 2016-05-01
  • 打赏
  • 举报
回复
typedef int (*PFI)(char *, char *)
ArthurJava 2016-05-01
  • 打赏
  • 举报
回复
typedef  int  (*PFI)(char *, char *);
这是一个指针函数的声明,这个指针函数有两个形参,类型为char型指针,指针函数的返回值是int型 可以将任意符合上述行参和返回值的函数赋值给这个PFI。
henufyh 2016-04-30
  • 打赏
  • 举报
回复
引用 2 楼 qq423399099 的回复:
那楼主把PFI前面的int理解成什么?
就是后面的会把 int 替换掉 不会再用到 int 了
henufyh 2016-04-30
  • 打赏
  • 举报
回复
就是后面的会把 int 替换掉 不会再用到 int 了
小灸舞 版主 2016-04-30
  • 打赏
  • 举报
回复
那楼主把PFI前面的int理解成什么?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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