看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) gcc+ubuntu 程式碼(Code):(請善用置底文網頁, 記得排版) long long int p = 9223372036854775807; printf("%lld\n",p); 補充說明(Supplement): 不知道為什麼這段程式碼gcc會輸出 integer constant is too large for ‘long’ type 意思是他會先用long去暫存9223372036854775807(2^63-1) 然後再把他放到long long int p中嗎 那這樣為什麼一開始的long不會overflow呢? 因為我p還是可以正常印出該數字 不太清楚在這過程中gcc做了什麼事情 謝謝各位版友的指教 -- ~宅男的四個徵兆~ ∠□ ○ ! * \○/ ★    (○ ? ╦╦└□ " ○□═ □   □> ║║√√ ╦══╦ ∥    |\ 一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.239.23.219
suhorng:9223372036854775807LL 07/25 21:13