[問題] C語言對overflow處理

作者: hohamita (HOHA)   2019-06-19 00:29:40
小弟在書上看到一段不同程式語言對overflow處理的敘述
以下節錄片段
Some languages(e.g., C) ignore overflow.
Other langauges(e.g., Ada, Fortran) require raising an exception
因為沒接觸過有 overflow exception 的語言
一直都認為是程式設計師需要自己注意
想問的是,既然程式語言的設計可以做到 overflow 的 exception handling
那麼為何像 C語言這類的語言要保留可能會overflow的空間呢
一直想不太明白
不知道各位有沒有什麼看法
感謝
作者: Schottky (順風相送)   2019-06-19 01:07:00
看 CPU 有沒有 bounds checking 的指令啊而且它會影響效能,自動做 bounds checking不見得是好事以前曾經有個同事可能第一次寫物件太興奮,每個運算元存取資料都加上邊界檢查值域檢查,最後效能整個悲劇....
作者: sarafciel (Cattuz)   2019-06-19 01:20:00
寫code跟開車一樣 安全跟速度這兩件事是有衝突的
作者: CCWck (幹嘛要暱稱)   2019-06-19 02:49:00
以c而言,字元交換若使用xor法,不處理overflow反而比較簡潔
作者: moebear (萌熊)   2019-06-20 04:38:00
我之前演算法剛學vector 狂用at 然後有一題一直不知道為什麼TLE 最後考完我回宿舍想很久發現應該是at太久了一題好像25分 QQ
作者: killer0418 (小咖)   2019-06-21 22:28:00
回 moebear 大大 應該是你不斷塞東西進 vector 到某個大小需要搬移才會太久
作者: RishYang (Rish)   2019-06-22 00:17:00
vector使用須知,使用前請預先預留空間
作者: dces4212 (flawless)   2019-06-22 04:57:00
C語言把你當成電腦的主人 上個C沒寫好導致溢位的人讓火箭掉下來qq (認真
作者: sarafciel (Cattuz)   2019-06-22 08:46:00
樓上講的那個是Ada吧 還是又有其他火箭失事了XD

Links booklink

Contact Us: admin [ a t ] ucptt.com