Re: [問題] 以下程式要如何作最佳化?

看板C_and_CPP作者 (noOneKnows)時間12年前 (2013/05/18 09:23), 編輯推噓0(008)
留言8則, 7人參與, 最新討論串3/4 (看更多)
const int axb = a * b; 判斷式裡面機率高的放前面 if(axb == 1 || axb == 5) { ... } 我覺得這樣是最好的寫法, 容易維護,可讀性高,沒有什麼缺點 如果 axb 不能宣告成 const 有時候會用 1 == axb 來避免少打等號,不過有些場合這已屬少見的用法了 (因為許多人會開編譯器警告來提醒) 但 如果 axb 是某些值的機率很高但是判斷式很複雜(或者牽涉到耗時動作如IO)時 可以考慮用類似以下寫法 switch(const int axb = a * b) { default: if(複雜的判斷式) { case 某一個機率很高的數: ... } else if(也很複雜的判斷式) { case 另外機率很高的數: ... } else { case 大概是第三個機率很高的數 ... case 機率很高但啥也不想做的數記得加分號當空的句子: ; } } switch 就是多重 goto 分支少建表來跳可能不划算 最後,絕不要在 C++ code 裡面寫中文,不然許功蓋老師和他的同事會衝出來罵我們 ※ 編輯: applecool 來自: 123.110.214.94 (05/18 09:50)

05/18 14:19, , 1F
這年頭大家都存 UTF-8 了
05/18 14:19, 1F

05/18 15:35, , 2F
就我所知msvc預設還是存ascii
05/18 15:35, 2F

05/18 21:04, , 3F
這種變數名稱其實很不好, 因為算式改了變數名也得改
05/18 21:04, 3F

05/18 22:23, , 4F
許功蓋XD
05/18 22:23, 4F

05/19 13:38, , 5F
註解不能中文嗎?
05/19 13:38, 5F

05/19 15:51, , 6F
應該說只能英文, 因為CODE可能被別人存成任何格式
05/19 15:51, 6F

05/19 16:53, , 7F
格式存錯就不能編譯 很合理啊 XD
05/19 16:53, 7F

05/19 18:10, , 8F
格式存錯還是可能通過編譯得到非預期的結果
05/19 18:10, 8F
文章代碼(AID): #1HbjW4cL (C_and_CPP)
文章代碼(AID): #1HbjW4cL (C_and_CPP)