作者shadown ()
看板C_and_CPP
標題Re: [語法] 無規則性固定數值輸入的處理方式?
時間Sat May 15 16:48:07 2010
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)
→ tinlans:C++ 的 map 跟 LPC 的 mapping 彈性還是有差,LPC 的 05/15 19:02
→ tinlans:key/value 都是 mixed,C++ 的 map 在編譯期就定死了。 05/15 19:03
→ tinlans:另外,LPC 的 mapping 其實概念來源是 Perl。 05/15 19:04
→ Splash5:switch小的時候效率跟ifelse差不多 但是數十個數百個的 05/16 18:22
→ Splash5:case的狀況下 switch case會被作成一個mapping table 05/16 18:23
→ Splash5:這時候基本上都是用jmp直接跳到要跑的statement上面.. 05/16 18:23