c - 如何在 ANSI C 中生成 NaN、-Infinity 和 +Infinity?

标签 c nan c89 infinity

我使用 ANSI C89(不是 C++),我想生成 NaN-Infinity+Infinity

有没有标准的方法(例如标准宏)? 或者是否有任何独立于平台和编译器的方法来生成这些数字?

float f = 0.0 / 0.0; // Is f ALWAYS in any platform is NaN?

最佳答案

在 C99 中有,但在以前的标准 AFAIK 中没有。

在 C99 中,您将拥有 NANINFINITY宏。

来自“数学<math.h>(§7.12)部分

The macro INFINITY expands to a constant expression of type float representing positive or unsigned infinity, if available; ...

如果您受困于 ANSI C89,那您就倒霉了。参见 C-FAQ 14.9 .

关于c - 如何在 ANSI C 中生成 NaN、-Infinity 和 +Infinity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6235847/

相关文章:

c - 程序在尝试使用 read() 系统调用读取文件时卡住

c - 人们如何在 C89 中检查 nan 和 inf

c - "Strong"通过单元素结构输入 C。编译器会做什么?

c - floor() 是否返回可以完全表示的东西?

javascript - 虚假? && 运算符如何使 0 返回 0 而不是 NaN?

c - 引用 fgets,\0 如何合并到普通文本文件中

c - 将字符串传递给 C 中的结构体

c - 数组在通过 void 函数后没有改变

c - 函数返回前一个而不是递归 (c)

ruby - 如何引发异常而不是返回 NaN