[問題] 判斷式寫法的效能?

看板C_and_CPP (C/C++)作者 (東周小星星)時間14年前 (2011/08/16 00:45), 編輯推噓4(407)
留言11則, 7人參與, 最新討論串1/1
想請教一下大大們, if(a==b && c==d){ ... } 和 if(a==b){ if(c==d){ .... } } 這兩種判斷式的寫法結果是一樣的, 但理論上後者效能會比較好, 因為不用兩種條件都要去判斷, 但是那只是我個人的猜測, 我不知道在實際上是不是真的這樣(雖然說效能上的差異或許極小), 我的想法是對的嗎? -- 你知道什麼是噹噹噹? 噹噹噹就是... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.184.9.109

08/16 00:49, , 1F
C & C++ 定義這兩種一樣
08/16 00:49, 1F

08/16 00:50, , 2F
wiki: Short-circuit_evaluation
08/16 00:50, 2F

08/16 01:00, , 3F
原來如此,那我以後還是用&&好了,既然一樣的話
08/16 01:00, 3F

08/16 01:04, , 4F
推薦這個 short circuit
08/16 01:04, 4F

08/16 01:12, , 5F
用 & 的時候才會前後都做
08/16 01:12, 5F

08/16 02:32, , 6F
if(f1() && f2()) wiki 沒特別提, 這個也一樣嗎?
08/16 02:32, 6F

08/16 02:52, , 7F
有提到啊, if (a && myfunc(b)) 這個例子裡面有說
08/16 02:52, 7F

08/16 02:52, , 8F
guarantees that myfunc(b) is never called [if a = 0]
08/16 02:52, 8F

08/16 09:23, , 9F
左邊的條件如果已經不成立了,右邊的判斷就不會去跑
08/16 09:23, 9F

08/16 09:30, , 10F
真的漏看, 謝謝解答 *^_^*
08/16 09:30, 10F

08/16 19:38, , 11F
短路是正解
08/16 19:38, 11F
文章代碼(AID): #1EIKr5to (C_and_CPP)
文章代碼(AID): #1EIKr5to (C_and_CPP)