用C编码,(dev c ++) 我正在使用:
void h(int x)
{
printf("error devide by zero");
}
signal(SIGFPE, h);
x = a / 0;
printf("%d", x)
它适用于int a, x;
但是,当我使用float a, x;
时,错误消息为:"#INF "
有人告诉我,我可以打断装配,其他人告诉我,我必须打断BIOS,但没有给出解决方案
答案 0 :(得分:-2)
Floating-Point environment定义是否为零除生成异常。除非你明确地打开或关闭它,否则你得到的行为没有定义。
此外,您正在使用h函数本身作为信号处理程序。当信号升高时,这会导致无限循环。