除以零中断错误 “使用浮动变量”
以C编码,(开发的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,但没有给出解决方案
的Floating-Point environment定义是否产生除数为零的异常。除非您明确地打开或关闭它,否则您得到的行为未定义。
此外,您正在使用h函数本身作为信号处理程序。当信号升高时,会导致无限循环。
不,'h'只是'void h(int x){printf(“error devide by zero”);}'。 – melpomene
我说它工作正常,如果我做x = 5/3;例如,也是x = 5/0;“int” –
Argh。修复问题的格式,以便我可以读取它... –
按零进行浮点除法默认情况下不会引发异常。 –
我认为,通过“错误信息”,你实际上是指'printf'输出'#INF'? –
是的,我的意思是mr.Cody,确切地说:#INF00 –