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

 

posted @ 2021-06-28 18:41  田埂  阅读(280)  评论(0编辑  收藏  举报