Re: [語法] 無規則性固定數值輸入的處理方式?

看板C_and_CPP作者時間15年前 (2010/05/15 16:48), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串4/7 (看更多)
 switch 會讓 source code 膨脹很多這問題,是我一直不太喜歡用 switch 的原因,尤其在看過不少濫用 switch 的程式碼之後,更 讓我對 switch 的使用感到反感(可讀性真的很差..不過這應該是  寫code的人的問題?)。  不過沒想到用 switch 在 complier 端會有做最佳化的動作?  如果是這樣的話,那用 switch 就有足夠的理由了~:)  然後..就像 flamo 跟 unfun 大的說法,使用 switch 可以用縮行  的方式,讓程式碼看起來少一點,我想我會使用看看,這應該可以  解決我討厭程式碼很大包的問題,不過不知道會不會被夢中的主管  唸,哈~:P 感謝各位大大的說明,讓我又多瞭解了一些東西~:)  PS. (1)原來C++ 裡有 mapping 這個東西可以使用,我一直以為那是     LP mud 特有的產物..^^|| (2)在夢中我們真的有討論到 hash table 的東西,不過想想大     家都覺得有點蠢,因為只有十種不同的輸入數值而已..XDDDD   (3)順便回答一下p大的疑問,輸入的數值只有十種(上篇文中有 說明),所以用 if/else的程式絕對比 switch 少很多。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.216.6 ※ 編輯: shadown 來自: 219.85.216.6 (05/15 16:49)

05/15 19:02, , 1F
C++ 的 map 跟 LPC 的 mapping 彈性還是有差,LPC 的
05/15 19:02, 1F

05/15 19:03, , 2F
key/value 都是 mixed,C++ 的 map 在編譯期就定死了。
05/15 19:03, 2F

05/15 19:04, , 3F
另外,LPC 的 mapping 其實概念來源是 Perl。
05/15 19:04, 3F

05/16 18:22, , 4F
switch小的時候效率跟ifelse差不多 但是數十個數百個的
05/16 18:22, 4F

05/16 18:23, , 5F
case的狀況下 switch case會被作成一個mapping table
05/16 18:23, 5F

05/16 18:23, , 6F
這時候基本上都是用jmp直接跳到要跑的statement上面..
05/16 18:23, 6F
文章代碼(AID): #1Bxb_93b (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Bxb_93b (C_and_CPP)