除以零中断错误"使用浮点变量"

时间:2017-04-23 09:18:49

标签: c interrupt divide-by-zero

用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,但没有给出解决方案

1 个答案:

答案 0 :(得分:-2)

Floating-Point environment定义是否为零除生成异常。除非你明确地打开或关闭它,否则你得到的行为没有定义。

此外,您正在使用h函数本身作为信号处理程序。当信号升高时,这会导致无限循环。