需要关于评估给定表达式的解释

时间:2015-10-05 04:02:25

标签: c arithmetic-expressions

表达式如下

(ux-uy) == -(unsigned) (y-x)

其中xy是随机整数,uxuy声明并定义如下

unsigned ux = (unsigned) x;
unsigned uy = (unsigned) y;

我在c中用不同的数字测试了表达式,这是正确的 但我无法证明为什么它是正确的。请解释一下。

1 个答案:

答案 0 :(得分:2)

y-x - >如果int减法溢出,则未定义的行为。

所以平等(ux-uy) == -(unsigned) (y-x)失败了。