作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題[問題] 哪個比較有效率!?
時間Tue Dec 22 00:10:38 2009
最近在看wince的書
他寫法都如以下 程式片段
http://nopaste.csie.org/854b2
一般我大概都是看過
LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam,
LPARAM lParam) {
PAINTSTRUCT ps;
RECT rect;
HDC hdc;
switch (wMsg) {
case WM_PAINT:
這種寫法的
我想問的是
連結的寫法 優點在哪
為啥似乎沒甚麼人用這種寫法
我認為還不錯 把MainWndProc 獨立不用修改
只需改const那個陣列
不過效率上
switch 似乎比較快???
我比較不了解switch他底層是怎麼做的
他是switch(哪個msg) 他就直接跳到對應的case???
(順便想問switch 怎麼可以做到直接跳到對應的case
我是下中斷點看他行為是這樣的@@)
那這樣for的感覺比較沒效率 還是說根本沒啥差別
討論一下
thx~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.136.174
※ 編輯: QQ29 來自: 123.192.136.174 (12/22 00:20)
→ ccbruce:MFC就是樣寫的啊...而且還用上了ASM來加速 12/22 00:32
→ ccbruce:去看Message Pumping 就會看到了 12/22 00:32
推 sunneo:switch會快一些 是說如果MainMessages不大的話也沒差 12/22 01:30
→ WPC001:額外把WndProc攔下來自己處理, 而不用MFC內建的MSG LOOP 12/22 08:35
→ WPC001:理論上可以再減少一些MFC做Message Pumping的處理時間 12/22 08:35
推 aecho:我比較喜歡連結的寫法… @@ 雖然沒用過~~ 12/22 12:54
→ aecho:尤其當switch很大的時候,會變的比較難維護。 12/22 12:55