【发布时间】:2015-02-17 00:23:39
【问题描述】:
long long llIdx = foo();
if (llIdx > 0LL) // Can I use 0 here?
...
如果我在上面的代码中使用0 而不是0LL 有什么问题吗?
什么时候我应该更喜欢0LL 而不是0?
【问题讨论】:
-
long long是signed类型。写x > 0ll或x > 0没有区别,因为0会自动提升为long long。 -
实际上,
long long的“签名”对于这种特定情况并不重要。如果比较是llIdx >= 0(或0LL),它会,因为对于unsigned long long,谓词总是正确的。
标签: c++ c long-integer