[問題] 條件運算子在不同專案類型下行為不同

看板C_and_CPP作者 (林小弟)時間13年前 (2011/01/18 16:25), 編輯推噓1(1011)
留言12則, 7人參與, 最新討論串1/1
開發平台(Platform): VC++ 額外使用到的函數庫(Library Used): MFC 問題(Question): 程式碼(Code):(請善用置底文網頁, 記得排版) 我要讓x+5,但是最多為100,所以寫了: x = ((x + 5) < 100 ? (x + 5):100); 用visual studio 2008編譯,編譯成console程式的執行結果跟我想的一樣, 但是在MFC的專案裡面的執行結果讓我感覺是 x = x + 5;//102-107-112-.... 一定要寫成這樣才會正常: x = (x < 95 ? (x + 5):100); 實在很詭異,請問這裡面隱藏著什麼學問嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.92.38

01/18 16:52, , 1F
高中數學有教!!
01/18 16:52, 1F

01/18 17:40, , 2F
是我問了水準很低的問題嗎Q_Q
01/18 17:40, 2F

01/18 18:11, , 3F
沒有什麼大問題,應該是你沒有睡飽的關係
01/18 18:11, 3F

01/18 18:37, , 4F
想想可樂果 ... 呃,不是, 想想x值在 95~99 之間的狀況
01/18 18:37, 4F

01/18 19:05, , 5F
為什麼我覺得兩行一樣… 不是移項嗎?不會超過極值吧
01/18 19:05, 5F

01/18 22:32, , 6F
我還是不懂 兩個邏輯等價的式子 為什麼執行起來會不同
01/18 22:32, 6F

01/18 22:33, , 7F
在console底下 兩者完全相同 但是在mfc裡面卻不一樣
01/18 22:33, 7F

01/18 22:37, , 8F
乍看之下, < 那條判斷式兩者數學上等價呀 @_@"
01/18 22:37, 8F

01/18 23:31, , 9F
我以為 0x7FFF FFFB <= x 時候結果會不一樣..
01/18 23:31, 9F

01/19 00:05, , 10F
x 的型態是?
01/19 00:05, 10F

01/19 00:27, , 11F
曾經想過是不是負數爆了, 可是看 //註解寫的102..又不像
01/19 00:27, 11F

01/19 08:59, , 12F
int x = 0; x......;
01/19 08:59, 12F
※ 編輯: worldxxi 來自: 140.96.92.38 (01/19 09:15)
文章代碼(AID): #1DDKw7AQ (C_and_CPP)