在C ++中,将正整数存储在有符号整数中是不是很糟糕?
例如,自签名整数以来的秒数。
答案 0 :(得分:1)
这取决于整数大小,环境和应用程序要求。将unix时间戳存储在带符号的64位整数中几乎可以肯定。 32位可能不是,具体取决于您的应用程序必须处理的日期范围。
对于大多数应用来说,它并不重要。
答案 1 :(得分:1)
如果它只能是一个正数,最好将它存储在unsigned int中,因为这会在尝试分配负数时强制出现编译错误,它允许你有两倍大小的有符号整数可以存储
int:-2147483648至2147483647 uint:0到4294967295
在有符号整数中存储始终为正的数字是不是很糟糕?不,它不坏。您分配相同数量的字节。使用uint更好吗?可能是的。