変数の値をvi_theIndex
にチェックする必要があります。私は実現Objective-Cの変数の値を確認できません
long long vi_theIndex = 65;
if ((vi_theIndex >= 0) && (vi_theIndex < 32))
{
//Case true
}
else
{
//Case false
}
:与えられた瞬間にそれは私がvi_theIndex
は32 は、今私はこのようにそれを行うよりも、大きくなったり、ゼロに等しく、小さいかどうかを確認するために65
の値が欲しいました65の結果が間違っていることを示しています。第2のケースが現れるはずですが、最初のケースが真となります。どうしてこれなの?
私はこれを試してみました:
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)であるべきだと思います。 –
そして、なぜあなたは長く長いのですか?範囲のチェックと可能な最大vi_theIndexを考慮して、インデックスを格納する型をより小さい型に変更する必要があります。また、キャッシュミスのために、現在の偽のステートメントが真のステートメントになるように変更する必要があります.33または66の最大インスタンスまでは最大でもキャッシュミスが発生します.....そしてキャッシュミスが多いので – CStreel
キャッシュミス?あなたは分岐の予測ミスを意味しますか?私はコンパイラがとにかくそれを世話すると期待しています。 –