c - 需要有关评估给定表达式的解释

标签 c arithmetic-expressions

表达式如下

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

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

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/

相关文章:

python - PyArray_New 或 PyArray_SimpleNewFromData 指定 3D 数组的维度

c - 如何使用动态内存分配逐行打印文件?

c - C 中的非 ASCII 字符

C++ 测试是否可除以 double

math - bc算术错误

Python:如何检查对象键值对的数据类型?

java - 查找定期重复出现的时间间隔是否相互重叠的算法?

c - 通过指针访问相同的结构或将结构存储在局部变量中?

Java 科学计算器正则表达式

c - 打开旧版本的 C 文件