#include<stdio.h>
typedef int (*Func)(int,int);
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
Func f(char op)
{
switch(op){
case '+':return add;
case '-':return sub;
}
}
int main()
{
int a=3,b=4,c;
char op='+';
Func p=sub;
p=f(op);
c=(*p)(a,b);
printf("%d\n",c);
}
第三行定义一个类型Func,这是指向函数的指针,且被它指向的函数具有两个int输入,和一个int输出。
之后是两个函数add和sub,以后会有函数指针指向这两个函数。
函数f是关键,它输入一个char,输出一个函数指针。根据输入值的不同,指向不同的函数。
第29行是关键,它调用p指向的那个函数。因为提前已经声明了函数的类型,所以,这里要按照类型,输入两个int,函数返回一个int。