[英]Are these statements the same if (x - y) {} vs. if (x !=y) {}
我已經編程了一段時間,在我看來,以下兩個if語句會產生相同的結果,但我總是質疑它,有人可以幫我解決這個問題嗎?
int x, y;
if (x - y) {
//some code
}
VS
int x, y;
if (x != y) (
// some code
}
謝謝...
它取決於x
和y
的類型。
假設x
和y
都是int
,則兩個語句不等效,因為如果結果在int
無法表示,則x - y
將調用未定義的行為。
假設x
和y
都是unsigned int
,則這兩個語句是等價的( unsigned int
不會溢出)。
如果(xy)
可能導致溢出,則不會。 如果發生溢出,則行為未定義。 在某些系統上它可能會換行,在其他系統上它可能會將結果設置為0(這會給你誤報)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.