由于数据类型的范围有限,比较总是错误的

时间:2014-09-27 04:34:41

标签: c++

如果有人能帮我解决这个警告,将不胜感激。 谢谢

错误代码:

file.cpp: In member function 'bool CHARACTER::IsEmptyItemGrid(TItemPos, BYTE, int) const':
file.cpp:640: warning: comparison is always false due to limited range of data type
file.cpp:666: warning: comparison is always false due to limited range of data type

PASTEBIN SOURCE CODE

这个社区很漂亮。我不知道它的存在。

1 个答案:

答案 0 :(得分:2)

你的第640行是:

if (p >= DRAGON_SOUL_INVENTORY_MAX_NUM)

您已将p定义为BYTE类型,大概是unsigned char,这意味着p的最大可能值为255.显然DRAGON_SOUL_INVENTORY_MAX_NUM是一个大于255的数字,因此p >= DRAGON_SOUL_INVENTORY_MAX_NUM无法成为真实。

至少乍一看,看起来666线与640线基本相同。