在C ++中,将正整数存储在有符号整数中是不是很糟糕?

时间:2017-11-08 21:37:41

标签: integer epoch signed

在C ++中,将正整数存储在有符号整数中是不是很糟糕?

例如,自签名整数以来的秒数。

2 个答案:

答案 0 :(得分:1)

这取决于整数大小,环境和应用程序要求。将unix时间戳存储在带符号的64位整数中几乎可以肯定。 32位可能不是,具体取决于您的应用程序必须处理的日期范围。

对于大多数应用来说,它并不重要。

答案 1 :(得分:1)

如果它只能是一个正数,最好将它存储在unsigned int中,因为这会在尝试分配负数时强制出现编译错误,它允许你有两倍大小的有符号整数可以存储

int:-2147483648至2147483647 uint:0到4294967295

在有符号整数中存储始终为正的数字是不是很糟糕?不,它不坏。您分配相同数量的字节。使用uint更好吗?可能是的。