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