PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] if(X||Y)以及if(a()||b())的差異
作者:
ironstark
(Stark)
2020-12-15 02:40:25
不好意思想請問一下各位大大
兩個function,a(),b(),回傳bool
X=a(),Y=b()
這樣 if(X||Y)以及if(a()||b())兩種寫法在執行上會有什麼差異呢?
這部分用到的觀念是什麼或是該搜尋什麼關鍵字
小弟新手入門對一些細節不太熟悉,還請各位幫忙解惑,謝謝大家!
作者:
chuegou
(chuegou)
2020-12-15 02:42:00
我好像知道你要問啥第二種寫法 b()在a()為true時不會執行 這個嗎?
作者:
Schottky
(順風相送)
2020-12-15 02:44:00
第二種寫法 a() 如果是 true 就直接判定 true不會再去執行 b() 看 b() 是 true 還是 false關鍵字是 order of evaluation
作者:
LPH66
(-6.2598534e+18f)
2020-12-15 02:50:00
不對, 正確的關鍵字是 short-circuit evaluation雖然是誰先誰後的問題沒錯, 但關鍵是因為前件已經肯定結果所以直接"短路"跳掉後件的求值
作者:
springman
(司布林)
2020-12-15 04:00:00
對 short-circuit 的部份弄清楚就知道了。
作者:
CoNsTaR
((const *))
2020-12-15 06:40:00
b 要有 side effect 執行結果才會有差吧否則只是效能問題?
作者:
loveme00835
(髮箍)
2020-12-15 07:28:00
要看你的 X/Y 是什麼型別來決定
作者:
dces4212
(flawless)
2020-12-15 22:48:00
差別在b()是否執行這種問題建議直接翻規格書 有權威 不怕錯C99 6.5.14有說明只要有一個expression為true即不繼續往右evaulate其他expression
作者:
kingofsdtw
(ä¸èƒ½é–’下來!!)
2020-12-22 22:05:00
非x86玩玩看,這樣寫會死人
作者:
Killercat
(殺人貓™)
2020-12-25 12:45:00
這還有一個別名叫sudden death, 比較少見 XD
作者:
Gway
(我愛的你 也愛我 好嗎?)
2020-12-31 08:17:00
差在fun call 代價 其他的版友說的很齊了
繼續閱讀
[問題] 範例的時間複雜度
anoymouse
[問題] 專案間資料共通問題
fanssica
[問題]chdir函數一些小問題
lazy0813
Re: [問題] 請問C語言函式回傳二維陣列的問題?
descent
[問題] 請問C語言函式回傳二維陣列的問題?
SST2000
[贈書] 已贈出
foxs9
[問題] 平衡二元樹
spong
[問題] 編譯可以執行 但壓成dll後會出現錯誤
x526542012
[問題] private的使用方式
sstrange
[問題] 工具檢查C語言未呼叫函式
jba
Links
booklink
Contact Us: admin [ a t ] ucptt.com