gpt4 book ai didi

c++ - 小于比。等于效率 C/C++

转载 作者:IT老高 更新时间:2023-10-28 22:33:24 25 4
gpt4 key购买 nike

当我使用较旧的 API 时,例如 Unix 上的 C 套接字 API,我总是注意到人们在比较错误的返回值时更喜欢小于 (<) 而不是等于 (==) .

int result = send(...);
if (result < 0) { perror("..."); }

在我所指的情况下,返回码只会是正数,0 , 或 -1 (errno 设置为正确的值)。那么为什么不直接使用 (result == -1) 来检查错误呢?而不是 (result < 0) ?

我问是因为我想知道这是出于习惯还是使用 less-than 是否更有效?我在想如果你比较两个 uint64_t s 并且您发现了 MSB 中的差异,您不必检查其他 7 个字节等。不过,我可能会达到这个逻辑!

最佳答案

我认为这既不是为了习惯,也不是为了效率。它更安全,因为您不依赖特定的返回码。相反,您依赖错误代码为负数。例如,strcmp当第一个字符串小于第二个字符串时,函数返回“负值”。在大多数实现中,它将返回 -1 , 但处理它的正确方法是检查 < 0

关于c++ - 小于比。等于效率 C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com