“在C语言中,函数本身不是变量,但可以定义指向函数的指针,这种指针可以被赋值、存放于数组之中,传递给函数及作为函数的返回值等” --《The C Programming Language Second Edition》
下面给出几个简单的例子来说明指向函数的指针。
第一个例子说明指向函数的指针如何声明、赋值、调用。
#include
#define TESTDATE 100
int func(int a)
{
return printf("%d\n",a);
}
typedef int (*FuncPtrType)(int a);//函数指针类型的声明
int main()
{
FuncPtrType fp = 0; //函数指针(变量)的声明以及初始化.等同 int (*fp)(int a) = 0;
fp = func; //函数指针的赋值
(*fp)(TESTDATE); //函数指针的调用
return 0;
}
第2个例子显示如何将指向函数的指针传递给函数、作为函数的返回类型。
#include
#define MAX 100
int func(int a)
{
return printf("%d\n",a);
}
typedef int (*FuncPtrType)(int a);//函数指针类型的声明
int* call(FuncPtrType fp = 0)//函数指针(形参)的的声明
{
return fp; //函数指针的返回
}
int main()
{
FuncPtrType vfp, vfp2;
vfp = hello;
vfp2 = call(vfp);
return 0;
}
阅读(629) | 评论(0) | 转发(0) |