Re: C/C++ 語言新手十三誡 -- Ver. 2016
看板C_and_CPP (C/C++)作者Hazukashiine (私は幸せです)時間8年前 (2016/06/08 15:37)推噓11(11推 0噓 24→)留言35則, 3人參與討論串2/6 (看更多)
※ 引述《wtchen (沒有存在感的人)》之銘言:
:
: INT_MIN -2147483647 // compiler實作時最小值不可大於 -(2147483648-1)
: ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^
: INT_MAX 2147483647 // compiler實作時最小值不可小於 (2147483648-1)
: ^^^^^^^^^^^^ ^^^^^^^^^^^^^^
: 不過由於32bit能顯示的範圍就是2**32種,所以一般作業系統會把
: ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
: INT_MIN多減去1,也就是int 的顯示範圍為-2147483648 ~ +2147483647。
: 當程式跑到abs(-2147483648)>0時,由於int不存在2147483648,
: 於是正確結果無法被有限的數位顯示(undefined behavior) 解釋奇怪的地方
: ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
不知道這樣有沒有比較好:
INT_MIN = -2147483648
INT_MAX = 2147483647
由於 integer literal 會被視為 int 整數型態
所以 #define INT_MIN -2147483648 是行不通的(超過 int 上界)
因此編譯器標頭檔實作時可以定義成 #define INT_MIN (-INT_MAX - 1)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.68.118
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465371461.A.A9C.html
※ 編輯: Hazukashiine (140.113.68.118), 06/08/2016 15:44:49
推
06/08 15:45, , 1F
06/08 15:45, 1F
→
06/08 15:45, , 2F
06/08 15:45, 2F
嗯 沒錯 我再編輯補充一下 www
→
06/08 15:52, , 3F
06/08 15:52, 3F
→
06/08 15:53, , 4F
06/08 15:53, 4F
推
06/08 16:38, , 5F
06/08 16:38, 5F
哪一份的 Standard 定義 INT_MIN 是 -2147483647 了?
→
06/08 16:38, , 6F
06/08 16:38, 6F
還有 INT_MIN 定義跟 OS 實作有什麼關係?是編譯器標頭檔實作。
還有置底的 C/C++ 語言新手十三誡有很多用詞沒有很精確的地方。
推
06/08 16:48, , 7F
06/08 16:48, 7F
→
06/08 16:51, , 8F
06/08 16:51, 8F
→
06/08 17:23, , 9F
06/08 17:23, 9F
推
06/08 21:53, , 10F
06/08 21:53, 10F
→
06/08 21:53, , 11F
06/08 21:53, 11F
→
06/08 21:54, , 12F
06/08 21:54, 12F
→
06/08 21:55, , 13F
06/08 21:55, 13F
→
06/08 22:08, , 14F
06/08 22:08, 14F
→
06/08 22:13, , 15F
06/08 22:13, 15F
好神奇... http://www.cplusplus.com/reference/climits/
就是保證 int 至少有 2 bytes 那麼大,而不是 4 bytes...
※ 編輯: Hazukashiine (140.113.68.118), 06/08/2016 22:19:08
推
06/08 22:21, , 16F
06/08 22:21, 16F
推
06/08 22:22, , 17F
06/08 22:22, 17F
→
06/08 22:22, , 18F
06/08 22:22, 18F
→
06/08 22:25, , 19F
06/08 22:25, 19F
→
06/08 22:26, , 20F
06/08 22:26, 20F
推
06/08 22:31, , 21F
06/08 22:31, 21F
推
06/08 22:37, , 22F
06/08 22:37, 22F
嗯嗯 看起來蠻認真編輯的 晚一點再指出是哪邊吧 QQ
※ 編輯: Hazukashiine (140.113.68.118), 06/08/2016 22:58:56
推
06/08 23:11, , 23F
06/08 23:11, 23F
→
06/08 23:12, , 24F
06/08 23:12, 24F
推
06/08 23:24, , 25F
06/08 23:24, 25F
→
06/08 23:25, , 26F
06/08 23:25, 26F
→
06/08 23:25, , 27F
06/08 23:25, 27F
→
06/08 23:26, , 28F
06/08 23:26, 28F
推
06/08 23:32, , 29F
06/08 23:32, 29F
→
06/08 23:32, , 30F
06/08 23:32, 30F
→
06/08 23:33, , 31F
06/08 23:33, 31F
→
06/08 23:34, , 32F
06/08 23:34, 32F
→
06/08 23:35, , 33F
06/08 23:35, 33F
→
06/08 23:40, , 34F
06/08 23:40, 34F
→
06/09 01:08, , 35F
06/09 01:08, 35F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 6 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章