【发布时间】:2012-09-19 00:06:29
【问题描述】:
我一直认为除以 0 会导致编译后的程序崩溃
但是我今天发现(使用 VC++ 2010 Express)除以 0 得到一个叫做 1.#INF000 的东西,它应该是正无穷大
当它被传递给一个函数时,它被传递为 -1.#IND000
这是怎么回事?
在 google 上搜索 1.#INF000 和 -1.#IND000 也没有提供任何明确的解释
它只是 VC++ 特有的东西吗?
【问题讨论】:
-
1.#IND000是NaNAFAIK 的表示。 -
@nneonneo stackoverflow.com/questions/9883128/…
-
我认为结果是 1.#INF000,一个浮点值,这意味着除法是浮点数。否则它肯定是一个未定义的整数值?
-
1,#INF000和1.#IND000是不是任何事物的法律代表。该标准要求Inf或Infinity表示无穷大,Nan表示非数字(当然,假设实现支持这些值)。这是 VC++ 中的一个严重错误,并且会导致无穷无尽的问题(尤其是因为没有其他程序会将它们读回为无穷大或不是数字)。
标签: c++ c visual-c++