看板 C_and_CPP 關於我們 聯絡資訊
short-circuit 是有規定的標準行為 C standard 6.5.13p4 Unlike the bitwise binary & operator, the && operator guarantees left-to-right evaluation; there is a sequence point after the evaluation of the first operand. If the first operand compares equal to 0, the second operand is not evaluated. C++ standard 5.14 Unlike &, && guarantees left-to-right evaluation: the second operand is not evaluated if the first operand is false. 所以如果你的寫法出現 bug 那有兩種可能 1. 你的 compiler 有 bug 2. 你的 code 其它地方有 bug -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.65.197
bleed1979:犀利! 10/09 13:57
weiyucsie:推一下~ 10/09 15:02
VictorTom:推 10/09 16:44
autumned:0_O 10/09 20:40
autumned:那看來dev真的...XD 10/09 20:40
littleshan:No, gcc 3.4 有提供short circuit這我很確定 10/09 22:09
littleshan:這算是滿基本的功能 10/09 22:09
VictorTom:小弟我記得至少在VC2005/2008這應該也都是ok的.... 10/09 23:07
iamstudent:這邊不包含一種情況,&&是用到user的自訂operator 10/09 23:28
iamstudent:如果是user自己寫的 operator&&,會失去這種性質 10/09 23:29
iamstudent:它會一定要等兩端參數都到齊 10/09 23:30
autumned:唔 我的話 &&是內建的 10/09 23:43
johnhmj:(∩_∩)這個我要推! 10/11 02:59