特定の状況で停止するために、故意にゼロ除算を実行する (そして結果を揮発性変数に格納する) プログラムがあります。ただし、ゼロ除算を実行するマクロを変更せずに、この停止を無効にできるようにしたいと考えています。
無視する方法はありますか?
使ってみました
#include <signal.h>
...
int main(void) {
signal(SIGFPE, SIG_IGN);
...
}
ただし、「浮動小数点例外(コアダンプ)」というメッセージで停止します。
実際には値を使用しないので、変数に何が割り当てられているかはあまり気にしません。0、ランダム、未定義...
編集:これが最も移植性が高いわけではないことはわかっていますが、多くの異なる OS で実行される組み込みデバイスを対象としています。デフォルトの停止アクションはゼロ除算です。他のプラットフォームでは、ウォッチドッグによる再起動を強制するために別のトリックが必要です (割り込みを無効にした無限ループなど)。PC (Linux) のテスト環境で、assert などに頼らずに、0 除算での停止を無効にしたかったのです。