typedef定义的函数指针类型
定义有了一个函数fun2
double fun2 (int a,double b)
{
return a+b;
}
定义有了一个f_pfun函数指针类型
typedef double (*f_pfun)(int,double);
这里只是一个类型,并不是一个实际的变量
上面定义了一个函数指针类型之后,就可以通过这个函数指针类型来定义函数指针了
f_pfun pfun; //这里声明了一个函数指针变量 pfun
pfun=fun2; //这里讲这个pfun指向了fun2函数
备注:
所以上面的typedef定义的函数指针类型是比较方便和明了的,因为typedef实际上就是定义一个新的数据类型,typedef有这样的一个作用,就可以用它来定义函数指针类型,这个定义的函数指针类型是能够指向返回值是double的,并且函数的参数只有int和double两个参数的函数。
typedef的用法为:typedef 原类型名 别名;
所以这里定义的typedef double (f_pfun)(int,double);就相当于把double () (int,double)定义成了另一个别名 f_pfun了。这个f_pfun就表示了函数指针类型了,注意这里的double (*)(int ,double)实际上不存在这样的写法,只是为了方便理解,这样的写法是不允许的,也是错误的!这样的写法并不代表是一个类型!!