表达式如下
(ux-uy) == -(unsigned) (y-x)
其中x
和y
是随机整数,ux
和uy
声明和定义如下
unsigned ux = (unsigned) x;
unsigned uy = (unsigned) y;
我用不同的数字测试了c中的表达式,它是正确的 但我无法证明为什么它是正确的。请解释一下。
最佳答案
y-x
--> int
减法溢出时未定义的行为。
因此,一般来说,等式 (ux-uy) == -(unsigned) (y-x)
会失败。
关于c - 需要有关评估给定表达式的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941083/