在 C++ 中,将正整数始终存储在有符号整数中是否不好?

In C++ is it bad to store always positive integer in signed integer?

在 C++ 中,将正整数存储为有符号整数是不是不好?

例如,自纪元以来的秒数(有符号整数)。

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

对于大多数应用程序来说,这并不重要。

如果它只能是正数,最好将其存储在无符号整数中,因为这会在尝试分配负数时强制出现编译错误,并且它允许您拥有两倍于有符号整数的大小可以存储。

整数:–2147483648 至 2147483647 uint:0 到 4294967295

那么将一个始终为正数的有符号整数存储起来不好吗?不,这还不错。您分配相同数量的字节。使用 uint 更好吗?应该是吧。