【发布时间】:2012-01-09 16:58:36
【问题描述】:
我在某处读到,在 x86_64 上比较 C/C++ 中的 signed ints 与 unsigned ints 相比要快一点,例如for (int i...) 比 for (uint i...)“快”。
这是真的吗?为什么这是真的?我知道差异非常小,但无论如何。
【问题讨论】:
-
这听起来像是依赖于我的超级平台/编译器......
-
是的,你是对的——我担心
x86_64。 -
@Chris:只是部分,我不仅对除法感兴趣。
-
但许多其他答案和 cmets 中的讨论涵盖除除法之外的其他领域。值得阅读所有答案以获得全貌,因为我认为这已经涵盖在那里。特别是请参阅stackoverflow.com/a/4712784/130352,了解为什么 for 循环中的 unsigned 可能更快(对于更快的可能非常小的值)。
-
我之前的评论应该说“为什么在 for 循环中 signed 可能会更快。”。 (因为编辑 cmets 的宽限期已过,所以不允许我编辑它)。
标签: c++ c performance gcc