【发布时间】:2014-09-30 03:39:53
【问题描述】:
我遇到了一个小问题,希望你能帮助我。谢谢你。
这里是错误代码:
FILE.cpp: In member function 'bool DragonSoulTable::ReadAdditionalApplys()':
FILE.cpp:223: warning: comparison between signed and unsigned integer expressions
这是我放在 pastebin 上的代码,因为它太大,无法将代码放在论坛上 FILE.CPP
【问题讨论】:
-
只是关于为什么会生成警告的注释——想象一下 m_vecDragonSoulNames 中有 lot 项的情况;例如超过 20 亿个项目(假设您的计算机架构上的 sizeof(size_t)==4)。在这种情况下,您的 for 循环中的比较行为会有所不同,具体取决于它将两个值比较为有符号还是无符号;在已签名的情况下,m_vecDragonSoulNames 可能会被重新解释为负值(!),这意味着 for 循环将立即终止而无需执行循环体——可能不是您所期望的行为。
标签: c++ expression unsigned signed