Re: [問題] 請問Function pointer陣列問題
※ 引述《mingtai1 (綠豆嘉義人)》之銘言:
: 小弟有個關於指標陣列的疑問
: 書上說指標陣列常拿來做選單系統, 不同的選項會呼叫不同的function
: 今天如果code如下
: // prototype
: void fun1 (int);
: void fun2 (int);
: void fun3 (int);
: // function pointer array
: void (*f[3]) (int) = {fun1, fun2, fun3};
: 這樣是OK的
: 但是如果把fun2改成 void fun2 (int, int)
: 就會出現compile error (cannot convert from xxxxx)
: 也很明顯的是函式的signature不合
要讓 signature 和很簡單,
你不要把參數型別侷限於簡單的資料結構就可以了,
把它變成 void * 或是 struct xxx *,
整個世界就會變得不一樣。
: 所以我的疑問是
: 難道要用function pointer做到選單功能
: 每個選單功能的回傳和接收的參數數目難道都要一樣嗎?這樣一點也不彈性
寫程式遇到這種狀況,
一定有什麼突破點可以發現,
這時就要多動腦了。
: 所以我想問, 請問有沒有什麼辦法可以解這個問題?
: 讓陣列裡面每個pointer都指到一個函式
: 而且那些函式也可以有不同的回傳和接收參數數目
: 感謝!
因為會問到這種問題的本身能力應該不會太差,
我先點到 void * 和 struct xxx * 為止,
還是想不通再來問。
--
Ling-hua Tseng (uranus@it.muds.net)
Department of Computer Science, National Tsing-Hua University
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://it.muds.net/~uranus
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.228.185
推
04/03 19:26, , 1F
04/03 19:26, 1F
推
04/03 21:54, , 2F
04/03 21:54, 2F
→
04/03 21:55, , 3F
04/03 21:55, 3F
推
04/04 00:30, , 4F
04/04 00:30, 4F
→
04/04 15:52, , 5F
04/04 15:52, 5F
推
04/04 20:13, , 6F
04/04 20:13, 6F
→
04/04 20:13, , 7F
04/04 20:13, 7F
→
04/04 20:14, , 8F
04/04 20:14, 8F
→
04/04 20:15, , 9F
04/04 20:15, 9F
→
04/04 20:15, , 10F
04/04 20:15, 10F
→
04/04 21:24, , 11F
04/04 21:24, 11F
推
04/04 21:46, , 12F
04/04 21:46, 12F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):