用typedef定义函数指针的形式如下:
typedef 返回类型(*新类型)(参数表)
比如先声明一个函数:
int FactorialFun(int a) //求a的阶乘
{
int Fact=1;
int i;
for(i=1;i<=a;i++)
Fact=Fact*i;
return Fact;
}
typedef int (*PFNFactorial)(int); //宏定义FactorialFun函数指针类型
void main()
{
int n;
PFNFactorial facfun;
facfun=FactorialFun;
cin>>n;
(*facfun)(n);
}
因此,typedef的功能是定义新的类型。前面是宏定义了一种PFNFactorial的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回int类型。