[問題] 哪個比較有效率!?

看板C_and_CPP作者 (我愛阿蓉)時間14年前 (2009/12/22 00:10), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
最近在看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)

12/22 00:32, , 1F
MFC就是樣寫的啊...而且還用上了ASM來加速
12/22 00:32, 1F

12/22 00:32, , 2F
去看Message Pumping 就會看到了
12/22 00:32, 2F

12/22 01:30, , 3F
switch會快一些 是說如果MainMessages不大的話也沒差
12/22 01:30, 3F

12/22 08:35, , 4F
額外把WndProc攔下來自己處理, 而不用MFC內建的MSG LOOP
12/22 08:35, 4F

12/22 08:35, , 5F
理論上可以再減少一些MFC做Message Pumping的處理時間
12/22 08:35, 5F

12/22 12:54, , 6F
我比較喜歡連結的寫法… @@ 雖然沒用過~~
12/22 12:54, 6F

12/22 12:55, , 7F
尤其當switch很大的時候,會變的比較難維護。
12/22 12:55, 7F
文章代碼(AID): #1BBvu09J (C_and_CPP)