2012-05-06 38 views
0

在這段代碼中,0的答案是正確的,但我以-5結尾。那麼爲什麼這個簡單的算術計算錯了?可能發生了什麼?兩個變量在調試器中顯示爲0,但是減去給出-5

int daysFromCurrentDay = (i-(1 - weekDisplay)); 

// daysFromCurrentDay shows as 0 in the debugger. 
// currentDay shows as 0 in the debugger. 

daysFromCurrentDay -= currentDay; 

// daysFromCurrentDay now shows as -5... What?? 
+2

很容易證明你的斷言'0-0 = -5'是錯誤的,所以除非你可以發佈更多的上下文,否則這可能是由於用戶調試器錯誤。 – Alan

+0

@Alan它在它之前設置了幾行,而不是在代碼中的其他位置設置。 –

+0

嗯只是從LLDB更改爲GDB,currentDay現在顯示爲5而不是0.不知道LLDB出了什麼問題,但至少現在我可以調試問題並修復它。 –

回答

0

從LLDB更改爲GDB臨時解決此問題...不確定爲什麼LLDB顯示不正確的值,但現在解決了問題。