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