typedef 的用法求指导

C语言 码拜 9年前 (2016-04-27) 1120次浏览
本人在K&R手册上面看到了typedef的这样的用法
typedef  int  (*PFI)(char *, char *)
本人能理解他说的: PFI 是一个指向函数的指针,该指针具有两个char * 类型的参数
但是他还说 该函数的返回类型为 int 本人就不理解了
求高手能讲解
解决方案

10

那题主把PFI前面的int理解成什么?

5

int  是整个类型定义的一个局部
int (*PFI)(char *,char *);
为一个完整的函数指针定义, 指针为 PFI, 类型为 int (*)(char *,char *);
所以
typedef  int (*PFI)(char *,char *);
定义PFI为 函数指针类 int (*)(char *,char *);
指向    返回值为 int,两个参数都是 char * 类型 的函数指针。
去掉 typedef 后,定义类型就变成定义对象,这里是函数指针
加回  typedef  这就变成定义类型了,对象名就变成类型名了(别名),
typedef类型。就是 去掉typedef 后,所定义的对象的类型。

5

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

这是一个指针函数的声明,这个指针函数有两个形参,类型为char型指针,指针函数的返回值是int型
可以将任意符合上述行参和返回值的函数赋值给这个PFI。

5

一般一个带返回值的函数肯定是这样写的:

int  func(char*, char*)

那么我们要定义这个函数的指针,下面的内容就好理解了。

typedef  int  (*PFI)(char *, char *);
PFI  fun;
fun = func;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明typedef 的用法求指导
喜欢 (0)
[1034331897@qq.com]
分享 (0)