作者softwind (software everywhere)
看板C_and_CPP
标题Re: [问题] 有办法用大於小於来启动function嘛
时间Thu Feb 26 22:56:49 2009
※ 引述《omomo34415 ( )》之铭言:
: 就是我有两段code几乎都一样
: do.......
: if(a>b)
: do........
: do......
: if(a<b)
: do.......
: do的部分都一样,有办法写个function
: fun(<)
: do.......
: if(a>b)
^^^^ 这个是指 '<' 吧?
: do........
: fun(>)
: do.......
: if(a>b)
: do........
: 希望看的懂我再说什麽
嗯嗯嗯 只能有一个的话 我也不知道如何用C
不过 如果用组合语言 可以直接修改 func的资料
然後 CS:IP指过去 就可以当 instruction跑了
取巧一点 两个实体的话
可以用 array of function point 然後 切换使用
ex:
typedef enum{
MORE_THAN=0,
LESS_THAN=1,
}FUNC_SWITCH_CMP;
ret_T more_than_func(para1, para2, ...){ /* implemenet */ }
ret_T less_than_func(para1, para2, ...){ /* implemenet */ }
typedef ret_T (*T_FUNC)(para_T1, para_T2, ...);
T_FUNC your_func[] = { more_than_func, less_than_func };
当你要 切换 codes时 把 enum type 进去
ex:
ret_T execute_func( FUNC_SWITCH_CMP switch_flag, para1,para2 ){
return your_func[ switch_flag]( para1, para2);
}
不过! 它们还是 有两个实体 而不是 一个 func
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.123.165
1F:→ sunneo:我想如果是function ptr的话 传进去直接call就可以了 02/26 23:06