除以零中断错误 “使用浮动变量”

问题描述:

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

+3

按零进行浮点除法默认情况下不会引发异常。 –

+1

我认为,通过“错误信息”,你实际上是指'printf'输出'#INF'? –

+0

是的,我的意思是mr.Cody,确切地说:#INF00 –

Floating-Point environment定义是否产生除数为零的异常。除非您明确地打开或关闭它,否则您得到的行为未定义。

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

+1

不,'h'只是'void h(int x){printf(“error devide by zero”);}'。 – melpomene

+0

我说它工作正常,如果我做x = 5/3;例如,也是x = 5/0;“int” –

+0

Argh。修复问题的格式,以便我可以读取它... –