我需要檢查變量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