作者ccbruce (今、そこに いる仆)
看板C_and_CPP
标题Re: [问题] 想问问是否函式阵列这样的东西…
时间Fri Jul 3 10:53:34 2009
你说的倒不是没有, 但是不像你想的那麽简单...
使用一个函数指标所成阵列,我在写直译器时倒是常常用...
...
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