Re: [問題] 有辦法用大於小於來啟動function嘛

看板C_and_CPP (C/C++)作者 (software everywhere)時間16年前 (2009/02/26 22:56), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串4/5 (看更多)
※ 引述《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

02/26 23:06, , 1F
我想如果是function ptr的話 傳進去直接call就可以了
02/26 23:06, 1F
文章代碼(AID): #19fgspBL (C_and_CPP)
文章代碼(AID): #19fgspBL (C_and_CPP)