我面临一个小问题,我希望你能帮助我。谢谢。C++:警告:有符号和无符号表达式(Gmake,freebsd)
以下是错误代码:
FILE.cpp: In member function 'bool DragonSoulTable::ReadAdditionalApplys()':
FILE.cpp:223: warning: comparison between signed and unsigned integer expressions
,这里是我把引擎收录的代码,因为它太大了,把这些代码在论坛 FILE.CPP
不过一个音符*为什么*生成警告 - 想象中的情况下m_vecDragonSoulNames有一大堆物品在其中;例如超过20亿项(假设您的计算机架构上sizeof(size_t)== 4)。在这种情况下,for循环中的比较行为会有所不同,具体取决于它是将两个值作为有符号还是无符号进行比较;在签名的情况下,m_vecDragonSoulNames可能会被重新解释为一个负值(!),这意味着for循环会立即终止而不执行循环体 - 可能不是您期望的行为。 – 2014-09-30 03:57:23