Re: [問題] 想問問是否函式陣列這樣的東西…
你說的倒不是沒有, 但是不像你想的那麼簡單...
使用一個函數指標所成陣列,我在寫直譯器時倒是常常用...
...
typedef bool (__cdecl *msg_proc_t)(char *, unsigned long &, HWND, mobile_t &,
sync_t &);
...
bool A(char *___input, unsigned long &___len, HWND ___target, mobile_t &
___mobile, sync_t &___sync)
{...}
...
msg_proc_t msg_procs[]={A, B, C, D, E, G, H,
H, I, J, L, N, OK, O, P,
Q, S, U, W, Y,
Fin, NULL};
然後用個迴圈,一直將token依序傳入這些函數就行了,接受就怎樣...拒絕又怎樣
...。整個程式看起來就比較有條理,不會有一堆if...else/switch...case。
如果真是在寫直譯器,那每支函數的前頭應該會有一些共用的部份,這可以用macro/
inline function來解決。
不知道這樣有沒有符合你的需求。
--
愛 哀 だ 百 は こ も こ
し し か 億 か ん ろ ん
い い ら 年 な な く な
ほ の い に に
ど 年 も も
に 月
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.229.101.61
討論串 (同標題文章)