通常已知值是积极的。例如 TCP/UDP 序列号总是正值。两者int
都unsigned int
足够大,甚至可以存储最大的sequence number
,所以我可以使用这些类型中的任何一种。当已知值为正时,还有许多其他示例。
unsigned
当常规类型的容量signed
足够(而且通常绰绰有余)时,是否有任何理由使用类型?
我个人倾向于使用常规类型,因为:
int
可能比uint
or更具可读性unsigned int
- 我不需要包含额外的标题
UINT
等。 - 我将避免在程序中的某个地方进行额外的演员表
unsigned
我可以想象使用类型的原因:
- 帮助编译器生成更好的代码?
- 帮助其他程序员了解该变量是无符号的
- 避免可能的错误(例如,当将 int 分配给 UINT 编译器时可能会产生编译时错误,我们应该检查我们分配的值是否为负)