c - 如何在 ANSI C 中定义 NaN 值?

标签 c floating-point nan c89

<分区>

Possible Duplicate:
NaN Literal in C?

我正在用 ANSI C 编写一个函数,它接收两个数字作为参数。参数为intfloat 类型。根据我的过滤器,该号码可能有效也可能无效。我如何返回一些意味着失败的值?返回类型是 float。我首先想到的是 NaN 抽象类型。但我不知道如何在 ANSI C 中表示它。

(抱歉我的英语不好。英语不是我的母语)

最佳答案

NaN 不是“抽象类型”。它是一个 float 据的值。

如果“ANSI C”是指标准 C(这是该术语的实际含义,就其本身而言),请包括 <math.h>并使用 NAN产生一个 nan 的宏,和 isnan(x)检测一个。

如果您所说的“ANSI C”实际上是指长期替换的 C89 标准(有些人打算这样做,即使它在形式上不正确),您可以使用 0./0. 生成 NaN 值, 并用 x != x 检查一个.

关于c - 如何在 ANSI C 中定义 NaN 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174991/

相关文章:

c - 为什么输出不同?

c - 这个循环将运行多少次?

c - 递归释放二叉树时出现段错误

c++ - 对本周大师的理解 #67 : Double or Nothing

python - 在提取子集时如何保留 NAN 值?

JavaScript:为什么 NaN !== NaN?

javascript - 强制 JSON.stringify() 发出 NaN/Infinity 或这样做的 JS JSON 库

c - 错误协议(protocol) 41 >= NPROTO(41) 向 linux 内核添加新协议(protocol)

c - 在双向链表中的元素之后插入

c - 使用 C 中的英特尔内在函数加载和存储复杂 float