关于函数指针的总结

函数指针的作用:它主要的用途是转换表和作为参数传递给另一个函数。

举一个函数指针声明的例子:

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;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章