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