我需要检查变量vi_theIndex
的值。在给定时刻它有65无法检查Objective-C中变量的值C
我要检查,如果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
变得不确定,调试器doesn't即使停在那里我的断点。看起来C不懂'<','< ='或'>'的标志。
limitFlag1 = (vi_theIndex < 0);
limitFlag1
没有定义:当我使用“<”或“>”签署单独像这里也会发生这种情况。
请问有人可以对此有所了解吗?
我认为应该是limitFlag2 =(vi_theIndex == 65); – 2012-04-11 06:03:12
你为什么要用很长的时间?考虑到你的检查范围和vi_theIndex的最大值,你应该改变你存储索引的类型到一个更小的类型。也由于缓存未命中,你应该改变它,所以你当前的虚假陈述成为真正的陈述,因为对于33或66的每个实例长达MAX最长您将收到一个缓存未命中......并且这是很多缓存未命中 – CStreel 2012-04-11 06:04:59
缓存小姐?你的意思是分支错误预测?无论如何,我希望编译器会照顾它。 – 2012-04-11 06:23:11