整数除算はやはり落とし穴か

整数除算のオーバーフローに関する先日の記事( 整数除算のオーバーフローについて - やた@はてな日記 )に対して思ったより多くの反応があり,自分だけじゃなかったかと安心する一方で,それってやばいような…と少しばかり不安になりました.

それから,いろいろと記事の内容にも記述不足やら誤りやら,よろしくないところがいくつかあってコメントをいただいたので,いくらか記述を足しておきました.いまだに説明不足に感じるところがいくつもあるのですが,細かいことを追求し始めると終わらなくなるので,この辺で終わりにしたいと思います.

整数の除算でオーバーフローが落とし穴だと感じるのは,整数の加算,減算,乗算ではオーバーフローしても知る限りの環境で同じ演算結果になるのに,整数の除算だけは例外が発生してプログラムごと落ちてしまうからです.そもそも C/C++ ではどちらも未定義なわけで,どんな結果になっても仕様上おかしくはないのですが….