天天看点

函数指针的基本运用(一)

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(&#