推 chuegou: 我好像知道你要問啥 12/15 02:42
→ chuegou: 第二種寫法 b()在a()為true時不會執行 這個嗎? 12/15 02:42
推 Schottky: 第二種寫法 a() 如果是 true 就直接判定 true 12/15 02:44
→ Schottky: 不會再去執行 b() 看 b() 是 true 還是 false 12/15 02:44
→ Schottky: 關鍵字是 order of evaluation 12/15 02:47
推 LPH66: 不對, 正確的關鍵字是 short-circuit evaluation 12/15 02:50
→ LPH66: 雖然是誰先誰後的問題沒錯, 但關鍵是因為前件已經肯定結果 12/15 02:50
→ LPH66: 所以直接"短路"跳掉後件的求值 12/15 02:51
→ springman: 對 short-circuit 的部份弄清楚就知道了。 12/15 04:00
推 CoNsTaR: b 要有 side effect 執行結果才會有差吧 12/15 06:40
→ CoNsTaR: 否則只是效能問題? 12/15 06:41
→ loveme00835: 要看你的 X/Y 是什麼型別來決定 12/15 07:28
推 dces4212: 差別在b()是否執行 12/15 22:48
推 dces4212: 這種問題建議直接翻規格書 有權威 不怕錯 12/16 00:01
→ dces4212: C99 6.5.14有說明只要有一個expression為true 12/16 00:02
→ dces4212: 即不繼續往右evaulate其他expression 12/16 00:02
推 kingofsdtw: 非x86玩玩看,這樣寫會死人 12/22 22:05
→ Killercat: 這還有一個別名叫sudden death, 比較少見 XD 12/25 12:45
推 Gway: 差在fun call 代價 其他的版友說的很齊了 12/31 08:17