2 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
typedef int (*funcptr)(); 這個的意思是:定義一個返回值為int,不帶參數的函數指針,
就是說funcptr 是 int (*)()型的指針
funcptr table[10];
定義一個數組,這個數組是funcptr類型的。就是說這個數組內的內容是一個指針,這個指針指向一個返回值為int,不帶參數的函數

智慧大石
TA貢獻1946條經驗 獲得超3個贊
定義一個函數指針類型。
比如你有三個函數:
void hello(void) { printf("你好!"); }
void bye(void) { printf("再見!"); }
void ok(void) { printf("好的!"); }
typdef void (*funcptr)(void);
這樣就構造了一個通用的函數
你用的時候可以這樣:
void speak(int id)
{
funcptr words[3] = {&hello, &bye, &ok};
funcptr fun = words[id];
(*fun)();
}
這樣的話,如果speak(0)就會顯示“你好!”
speak(1)就會顯示“再見!”
speak(2)就會顯示“好的!”
用于處理參數和返回值的形式都一樣,但是功能不確定的一組函數,可以使用函數指針。
比如算術運算符,加、減、乘、除,都可以用typedef int (*calc)(int,int)代表,等等
添加回答
舉報
0/150
提交
取消