[问题] 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