用typedef给函数指针数组定义一个简单的名称
函数指针数组可以用来储存函数,很方便,实例如下:
#include<stdio.h> int fun1(int a, int b) { return a + b; } int fun2(int a, int b) { return a - b; } int main() { int (*funs[5])(int, int); funs[0] = fun1; funs[1] = fun2; printf("%d\n", funs[0](10, 5)); printf("%d\n", funs[1](10, 5)); return 0; }
但是` int (*funs[5])(int, int); `这样的写法,看起来有些复杂
可以用typedef 来解决这个问题
只需定义一个简单的名称:typedef int(*name)(int, int);
要申请函数指针数组的时候,像申请常规的变量一样就可以:name funs[5];
上面的程序,可以写成这样:
#include<stdio.h> int fun1(int a, int b) { return a + b; } int fun2(int a, int b) { return a - b; } typedef int(*name)(int, int); int main() { name funs[5]; funs[0] = fun1; funs[1] = fun2; printf("%d\n", funs[0](10, 5)); printf("%d\n", funs[1](10, 5)); return 0; }