【发布时间】:2020-06-28 15:47:39
【问题描述】:
我不太确定为什么 Visual Studio 给我以下错误消息“定义错误的 for 循环:'unsigned int' 值始终在 '0' 到 '4294967295' 的范围内。循环无限执行”代码:
for (unsigned int i = list->GetCount() - 1; i >= 0; i--)
{
// do stuff to each item (specifically in reverse order)
}
谁能给我解释一下?
编辑:GetCount() 返回一个无符号整数,我无法控制它
【问题讨论】:
-
作为
unsigned类型,i >= 0总是正确的,根据定义。unsigned类型的变量不可能为负数。 -
哦!我忘记了这样一个事实,即当我到达 0 时,我会简单地“回绕”回来。那么,以负序遍历列表的最佳方法是什么?我的“get count”函数返回一个无符号整数
-
您可以将 getCount() 函数转换为 int,然后将 i 设置为 int。当 i 变为负数时,这将防止任何“环绕”。
-
unsigned被高估了。
标签: c++ visual-studio