很难说Switch和If哪个更快。
- ; 10 : if(msg == AcRx::kInitAppMsg){
- mov eax, DWORD PTR _msg$[esp-4]
- cmp eax, 1
- push esi
- jne $LN2@acrxEntryP
- ; 11 : acrxDynamicLinker->unlockApplication(app);
- ; 12 : acrxDynamicLinker->registerAppMDIAware(app);
- ; 13 : acedRegCmds->addCommand(L"MyGroup",L"Hello",L"Hello", NULL, hello);
- ; 17 : }
- ; 18 : return AcRx::kRetOK;
- xor eax, eax
- pop esi
- ; 19 : }
- ret 0
- $LN2@acrxEntryP:
- ; 14 : }
- ; 15 : if(msg == AcRx::kUnloadAppMsg){
- cmp eax, 2
- jne SHORT $LN21@acrxEntryP
- ; 16 : acedRegCmds->removeGroup(L"MyGroup");
- ; 17 : }
- ; 18 : return AcRx::kRetOK;
- xor eax, eax
- pop esi
- ; 19 : }
- ret 0
- ; 16 : acedRegCmds->removeGroup(L"MyGroup");
- $LN21@acrxEntryP:
- ; 17 : }
- ; 18 : return AcRx::kRetOK;
- xor eax, eax
- pop esi
- ; 19 : }
- ret 0
- ; 10 : switch (msg) {
- mov eax, DWORD PTR _msg$[esp-4]
- sub eax, 1
- push esi
- je SHORT $LN2@acrxEntryP
- sub eax, 1
- jne $LN23@acrxEntryP
- ; 15 : break;
- ; 16 : case AcRx::kUnloadAppMsg:
- ; 17 : acedRegCmds->removeGroup(L"MyGroup");
- ; 18 : }
- ; 19 : return AcRx::kRetOK;
- xor eax, eax
- pop esi
- ; 20 : }
- ret 0
- ; 15 : break;
- ; 16 : case AcRx::kUnloadAppMsg:
- ; 17 : acedRegCmds->removeGroup(L"MyGroup");
- ; 18 : }
- ; 19 : return AcRx::kRetOK;
- xor eax, eax
- pop esi
- ; 20 : }
- ret 0
- $LN2@acrxEntryP:
- ; 11 : case AcRx::kInitAppMsg:
- ; 12 : acrxDynamicLinker->unlockApplication(app);
- ; 13 : acrxDynamicLinker->registerAppMDIAware(app);
- ; 14 : acedRegCmds->addCommand(L"MyGroup",L"Hello",L"Hello", NULL, hello);
- $LN23@acrxEntryP:
- ; 18 : }
- ; 19 : return AcRx::kRetOK;
- xor eax, eax
- pop esi
- ; 20 : }
- ret 0
|