【发布时间】:2011-11-22 20:12:38
【问题描述】:
如果需要将int x 与unsigned int y 进行比较,后者在C99 和gcc 4.4+ 中更安全/更好/更好:
(unsigned int)x == yx == (int)y
重要吗?
【问题讨论】:
-
它通常无关紧要,除非在溢出情况下(>= MAX_UINT/2,即 MAX_INT,即 32 位机器上的 2**31)。
-
@BasileStarynkevitch:但这大约是可能值的 50%!还有什么比这更重要?
-
我同意,但是溢出测试并没有真正的自然意义......(并且机器内部的测试仍然相同)。所以还是没关系……机器码差不多……