亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么右邊加個括號?

為什么右邊加個括號?

三國紛爭 2022-07-14 14:14:31
typedef int (*funcptr)(); // funcptr is synonym for "pointer// to function returning int"funcptr table[10]; // Equivalent to "int (*table[10])();"
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

typedef int (*funcptr)(); 這個的意思是:定義一個返回值為int,不帶參數的函數指針,
就是說funcptr 是 int (*)()型的指針
funcptr table[10];
定義一個數組,這個數組是funcptr類型的。就是說這個數組內的內容是一個指針,這個指針指向一個返回值為int,不帶參數的函數

查看完整回答
反對 回復 2022-07-18
?
智慧大石

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)代表,等等


查看完整回答
反對 回復 2022-07-18
  • 2 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號