用typedef給函式指標陣列定義一個簡單的名稱
阿新 • • 發佈:2021-06-28
函式指標陣列可以用來儲存函式,很方便,例項如下:
#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)); return0; }
但是` 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; }