jav*_*red 9 c++ signedness
通常,价值观是积极的.例如,TCP/UDP序列号始终为正值.两者int并unsigned int有足够大的存储即使是最大的sequence number,所以我可以使用这些类型.当已知值为正值时,还有许多其他示例.
int
unsigned int
sequence number
unsigned当常规signed类型的容量足够(并且通常绰绰有余)时,是否有任何理由使用类型?
unsigned
signed
我个人倾向于使用常规类型,因为:
uint
UINT
使用unsignedI型的原因可以想象:
Cal*_*leb 1
原因之一是比较有符号数和无符号数可能会产生令人惊讶的结果。在 C 和(我认为)C++ 中,比较有符号数和无符号数会导致有符号数被解释为无符号数。如果有符号值恰好为负数,则将其读取为无符号数将给出比任何无符号数更大的值,这不是您想要的。看到这个问题以获取 Objective-C 中的示例,该示例使用与 C 相同的转换规则。
归档时间:
12 年,9 月 前
查看次数:
259 次
最近记录: