1. 程式人生 > 其它 >用typedef給函式指標陣列定義一個簡單的名稱

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