【发布时间】:2012-10-18 03:06:55
【问题描述】:
我有一个关于下一个代码的问题:
int main {
double x = 0;
double y = 0/x;
if(y==1) {.....}
....
....
return 0;
}
当我在我的计算机上运行代码时,我没有收到任何运行时错误,并且我看到了 y = -nan(0x8000000000000)。为什么除以零不是运行时错误?
另外,当我将第一行更改为int x = 0;
现在出现运行时错误。有什么区别?
【问题讨论】:
-
@Jens:不,C99 标准的附件 F 覆盖了这一点,您不会得到浮点的未定义行为。并非所有实现都支持附件 F,但你和我的都支持。
标签: c floating-point nan