【发布时间】:2021-10-11 12:59:02
【问题描述】:
bool isEqualOrBiggerUint32(uint32_t src, uint32_t dest)
{
return (src - dest < 0x7fffffff);
}
我认为这个功能是比较dest和src。
但是,为什么我们要在这个函数中使用 0x7fffffff 呢?
谢谢
【问题讨论】:
-
我发现函数的名称和参数有点混乱。
-
我“解释”
0x7fffffff,而不是公式 ;-) -
函数是你写的吗?它使简单的事情变得过于复杂和混乱。从它的名字来看,你为什么不能
return src >= dest;(或者反过来)?为什么要使用函数? -
这段代码是错误的(如果我们假设它是按照函数名所说的那样做的话)。例如,如果
src == 0xffffffff和dst == 0则它们的差异将给出 0xffffffff 并且函数将错误地返回 false。 -
@Lundin 我想它对于比较可以换行的数字(如 TCP 序列号)并且预计会靠近在一起很有用。但在这种情况下,它的名称具有误导性。
标签: c computer-science