函数指针的作用:它主要的用途是转换表和作为参数传递给另一个函数。
举一个函数指针声明的例子:
int (*pf) (int , int);
解释:pf是一个指向函数的指针,此被指向函数包含两个int型形参,返回值为int型;
注意:声明函数指针时必须在‘*’号与指针名称pf之外加上'()',否则不能成功;
例程:
//
//函数指针 */
//
#include <stdio.h>
#include <stdlib.h>
//typedef bool (*PFUNC) (int, int);
bool lzwCompare(int a, int b)
{
if (a<=b)
{
return false;
}
else
return true;
}
int main(void)
{
int a=9, b=10;
int (*pf)(int, int) = lzwCompare;
if (pf(a,b))
{
printf("a>b\n");
}
else
printf("a<=b\n");
return 0;
}
为了以后可以使定义函数指针方便,我们可以使用typedef对函数指针做类型重命名,形式如下:
typedef bool (*PFUNC) (int, int);
上面的例子改为:
//
/*函数指针 */
//
#include <stdio.h>
#include <stdlib.h>
typedef bool (*PFUNC) (int, int);
bool lzwCompare(int a, int b)
{
if (a<=b)
{
return false;
}
else
return true;
}
int main(void)
{
int a=9, b=10;
PFUNC pf = lzwCompare;
if (pf(a,b))
{
printf("a>b\n");
}
else
printf("a<=b\n");
return 0;
}