我有一个程序故意执行除以零(并将结果存储在 volatile 变量中)以便在某些情况下停止。但是,我希望能够禁用这种暂停,而无需更改执行除以零的宏。
有没有办法忽略它?
我试过使用
#include <signal.h>
...
int main(void) {
signal(SIGFPE, SIG_IGN);
...
}
但它仍然因消息“浮点异常(核心转储)”而死。
我实际上并没有使用该值,所以我并不真正关心分配给变量的内容;0、随机、未定义...
编辑:我知道这不是最便携的,但它适用于在许多不同操作系统上运行的嵌入式设备。默认停止动作是除以零;其他平台需要不同的技巧来强制看门狗引起的重启(例如禁用中断的无限循环)。对于 PC (linux) 测试环境,我想禁用除以零时的暂停,而不依赖于断言之类的东西。