标签:
经常会用到一些简单的函数指针,也会经常见到一些比较变态的函数指针
简单的函数指针类型不详细讲,大概就是下面这个样子
int (*pfunc)(...) //返回值 函数指针(参数列表)
注意与 int (pfunc)(...) 区分(该处就是一个函数的声明)
一下是一个复杂的声明
int (*pfunc(int))(int);
pfunc是一个带有int 参数 并返回 int(*)(int),即返回一个函数指针
1.
//typedef int(*pfunc(int))(int,float); ////pfunc为普通函数类型:pfunc(int),返回值是一个函数指针 int func(int,float)
//pfunc* pFF1; //声明一个指向函数指针的变量
2.
typedef int (*(*pfunc)(int))(int,float); //pfunc为函数指针类型:(*pfunc)(int) 返回值同1
pfunc pFF1; //声明一个指向函数指针的变量
typedef int (*func)(int,float);
func pFF2; //pFF2为指向int()(int,float)的函数指针类型变量
int f2(int a,float b)
{
printf("%d,%f\n",a,b);
return a> b;
}
func f1(int a)
{
func f = f2;
return f;
}
调用示例
pFF1 = f1;
pFF2 = pFF1(2);
pFF2(10,20.334);
标签:
原文地址:http://blog.csdn.net/gis_wudi/article/details/45044187