c语言之函数指针应用

c语言之函数指针应用

1、函数指针与指针函数

  在开始运用函数指针前,我们需要将两个概念即:函数指针与指针函数搞清楚。

函数指针,指明这个一个函数,但返回值为指针类型,语法格式为:

    类型名* 函数名A(参数列表);

调用他时,我们可以使用

    类型名* 变量名 = 函数名A(参数列表);

指针函数,指明这是一个指针,但用指针指向一个函数,语法格式为:

    类型名 (*函数名fun)(参数列表);

 

调用他时,我们可以使用

 例如存在一个函数

              类型名 函数名B(参数列表);

              我们可以使用

第一种用法

             fun=&B;

              (*fun)(参数列表); 

第二种用法

    fun=B;

    (*fun)(参数列表);

这两个语句来调用函数B。这样看用指针函数代码还多了,但在大型程序中,如果函数A与函数B的参数类型,返回值类型都相同的情况下,就可以统一利用指针函数fun来调用,编写整洁的代码。

2、代码例子

#include<stdio.h>

int add(int a, int b) {
	return a+b;
}

int sub(int a, int b) {
	return a-b;
}

typedef int (*fun)(int a, int b);

fun globalFun[2]=
{
	[0] = add,
	[1] = sub,
};

int main() {
	int first = 5;
	int second = 10;
	printf("%d\n", globalFun[0](first, second));
	printf("%d\n", globalFun[1](first, second));
	return 0;
}

  

 

猜你喜欢

转载自www.cnblogs.com/grglym/p/11493891.html