gpt4 book ai didi

c++ - 在切换到 64 位整数之前,为什么使用 INT_MAX 而不是 UINT_MAX?

转载 作者:行者123 更新时间:2023-12-01 19:13:22 31 4
gpt4 key购买 nike

既然 Gangnam Style 已经超过了 INT_MAX 限制,为什么大家都说 Google 必须从 32 位架构转向 64 位架构(8 字节 int s)?为什么不使用无符号 int从一开始,因为考虑计数器的负面观点没有意义?

最佳答案

Google 的 style guide to C++鼓励使用 int 而不是 unsigned

You should not use the unsigned integer types such as uint32_t, unless there is a valid reason such as representing a bit pattern rather than a number, or you need defined overflow modulo 2^N. In particular, do not use unsigned types to say a number will never be negative. Instead, use assertions for this.

因此确实有道理,因为观看次数接近 0 的视频远多于观看次数接近 2^31-1 的视频:花了数年时间才达到 int32_t 的行为与真实情况不同的区域整数,而每个 YouTube 帖子都从另一个案例的区域附近开始。

未签名的失败(考虑到指数增长)也不会花那么长时间。更糟糕的是,如果它与代码库中其他地方签名的 32 位交互,它将很容易触发未定义的行为(溢出行为未定义)。

关于c++ - 在切换到 64 位整数之前,为什么使用 INT_MAX 而不是 UINT_MAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27337095/

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