天天看點

函數指針的基本運用(一)

1,單個函數的注冊和多個函數的注冊,注冊函數一般提高了開發的高效,我們很多時候隻需要知道這個函數怎麼用的就行了,不需要去管他是怎麼實作的,比如說一般開發過程中别人隻會給你一個so和一個.h檔案(聲明函數接口),你隻需要入參和傳回值的意義就可以了。

2,單個函數的注冊和可視化。

比如說有一個拷貝函數:有的使用者需要用,而有的不要使用,我現在有實作,但是我不想讓别人看到函數的實作,我們就可以聲明一個函數指針來接受你的函數,然後看使用者是否注冊,聲明函數int (*g_read_buf_to_string)(char* buf,char* string) = NULL;

如果要使用就用int reg_fun(int(*fun)(char*,char*))來注冊就可以,使用時可以做到差異化處理了。

首先我們來舉一個函數指針的例子來看看函數指針是怎麼用的吧!

#include<stdio.h>
#include<string.h>

int copy_buf(char* buf1,char* buf2)
{
	if(buf2 != NULL )
	{
		strcpy(buf1,buf2);
	}
	else
	{
		printf(" input parameter is illegel\n");
		return -1;
	}
	return 0;
}

int reg_fun(int(*fun)(char*,char*))
{
	if(fun != NULL)
	{
		g_read_buf_to_string = fun;
	}
	else
	{
		printf(&#