我需要检查一个变量vi_theIndex
的值。在给定时刻,它的值为 65。
我想检查是否vi_theIndex
大于或等于零并且小于 32。现在我这样做:
long long vi_theIndex = 65;
if ((vi_theIndex >= 0) && (vi_theIndex < 32) )
{
//Case true
}
else
{
//Case false
}
我意识到 65 的结果是错误的。第二种情况应该出现,但第一种情况是正确的。为什么是这样?
我试过这个:
long long vi_theIndex = 65;
bool limitFlag1, limitFlag2;
limitFlag1 = (vi_theIndex <= 0);
limitFlag2 = (vi_theIndex = 65);
limitFlag2
变为真并limitFlag1
变为未定义,调试器甚至不会在我的断点处停止。看起来 C 不理解 '<'、'<=' 或 '>' 符号。当我像这里一样单独使用“<”或“>”符号时也会发生这种情况:
limitFlag1 = (vi_theIndex < 0);
limitFlag1
没有定义。
有人可以对此有所了解吗?