作者hohamita (HOHA)
看板C_and_CPP
标题[问题] C语言对overflow处理
时间Wed Jun 19 00:29:40 2019
小弟在书上看到一段不同程式语言对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的空间呢
一直想不太明白
不知道各位有没有什麽看法
感谢
--
不确定这篇发在本版是否合适
若有不妥还请版主帮忙删除,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 134.208.35.188 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1560875382.A.BC8.html
1F:推 Schottky: 看 CPU 有没有 bounds checking 的指令啊06/19 01:07
2F:→ Schottky: 而且它会影响效能,自动做 bounds checking不见得是好事06/19 01:09
3F:→ Schottky: 以前曾经有个同事可能第一次写物件太兴奋,每个运算元06/19 01:10
4F:→ Schottky: 存取资料都加上边界检查值域检查,最後效能整个悲剧....06/19 01:12
5F:→ sarafciel: 写code跟开车一样 安全跟速度这两件事是有冲突的06/19 01:20
6F:推 CCWck: 以c而言,字元交换若使用xor法,不处理overflow反而比较简06/19 02:49
7F:→ CCWck: 洁06/19 02:49
感谢 大致了解了
也就是说在追求效能的情况下
省去了overflow的检查来提升速度
8F:→ moebear: 我之前演算法刚学vector 狂用at 然後有一题一直不知道为 06/20 04:38
9F:→ moebear: 什麽TLE 最後考完我回宿舍想很久发现应该是at太久了 06/20 04:39
10F:→ moebear: 一题好像25分 QQ 06/20 04:39
11F:推 killer0418: 回 moebear 大大 应该是你不断塞东西进 vector 到某 06/21 22:28
12F:→ killer0418: 个大小需要搬移才会太久 06/21 22:28
13F:→ RishYang: vector使用须知,使用前请预先预留空间 06/22 00:17
14F:推 dces4212: C语言把你当成电脑的主人 上个C没写好导致溢位的人让火 06/22 04:57
15F:→ dces4212: 箭掉下来qq (认真 06/22 04:57
16F:→ sarafciel: 楼上讲的那个是Ada吧 还是又有其他火箭失事了XD 06/22 08:46
※ 编辑: hohamita (134.208.250.73 台湾), 06/23/2019 22:00:41