關於函數指針的總結

函數指針的作用:它主要的用途是轉換表和作爲參數傳遞給另一個函數。

舉一個函數指針聲明的例子:

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


 

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