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
", globalFun[0](first, second));
printf("%d
", globalFun[1](first, second));
return 0;
}