作者johnchen902 (johnchen902)
看板b04902xxx
标题[讨论] U.B. due to unsequenced access
时间Sat Oct 24 13:58:24 2015
根据 C11 标准 §6.5
2 If a side effect on scalar object is unsequenced relative to either
a different side effect on a same scalar object or a value computation
using the value of the same scalar object, the behavior is undefined.
以下数个例子都是未定义的行为
(i = 3) + i;
(i++) + (++i);
(i = 3) + (i = 5);
(i = -1) + (i = -1);
i ^= j ^= i ^= j;
以下是有定义的行为:
i = 3;
i = 5;
(i = 3), (i = 5);
(i = 3) && (i = 5);
(i = 0) || (i = 8);
(i = 1) ? (i = 3) : (i = 5);
------------------------------------
int f(int *x) { return *x = 3; }
f(&i) + i;
以上希望大家能理解
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.16.137
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/b04902xxx/M.1445666306.A.A66.html