看板 C_and_CPP 關於我們 聯絡資訊
最近在看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