gpt4 book ai didi

c++ - 类型转换签名到无符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:50 26 4
gpt4 key购买 nike

这样做是否正确?

typedef unsigned int Index;

enum
{
InvalidIndex = (Index) -1
};

我读过它跨平台是不安全的,但我在很多“专业”代码中看到了这一点......

最佳答案

您阅读的内容可能是出于恐惧、不确定性和怀疑。无论你读到什么,作者可能认为 (unsigned)-1正在下溢并可能在位表示不会恰好给你的系统上造成困惑 UINT_MAX为你的麻烦。

但是,作者错了,因为标准保证无符号值在到达范围边缘时回绕。无论涉及什么位表示,(unsigned)-1 std::numeric_limits<unsigned>::max() .期间。

不过,我不确定这样做有什么好处。您将获得那么大的最大值。如果没问题,我想您可以开始了。

关于c++ - 类型转换签名到无符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191508/

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