类, _class ,有限, isnan 或无序子例程
用途
确定浮点数的分类。
库
IEEE 数学库 (libm.a) 或 System V 数学库 (libmsaa.a)
语法
描述
class 子例程, _class 子例程, 有限 子例程, isnan 子例程和 un有序 子例程确定它们的浮点值的分类。 un有序 子例程确定涉及 x 和 y 的浮点比较是否会生成 IEEE 浮点无序条件 (例如 x 还是 y 是 NaN)。
class 子例程返回一个整数,该整数表示浮点 x 参数的分类。 因为 class 是 C++ 中的反向关键字。 不能在 C++ 程序中调用 class 子例程。 _class 子例程是使用 class 子例程的 C++ 程序的接口。 类和 _class 子例程的接口和返回值相同。 class 子例程返回的值在 float.h 头文件中定义。 返回值如下所示:
| 项 | 描述 |
|---|---|
| FP_PLUS_NORM | 正规范化,非零 x |
| FP_马里稳定团 NORM | 负规范化,非零 x |
| FP_PLUS_DENORM | 正反规范化,非零 x |
| FP_马里稳定团 | 负反规范化,非零 x |
| FP_PLUS_ZERO | x = +0.0 |
| FP_马里稳定团 ZERO | x = -0.0 |
| FP_PLUS_INF | x = + INF |
| FP_马里稳定团 | x = -INF |
| FP_NANS | x = 信号不是数字 (NaNS) |
| FP_NANQ | x = 停顿不是数字 (NaNQ) |
因为类是 C++ 中的保留关键字,所以不能在 C++ 程序中调用 class 子例程。 _class 子例程是使用 class 子例程的 C++ 程序的接口。 class 和 _class 子例程的接口和返回值完全相同。
如果x参数是有限数值,即x不是 +-、INF、NaNQ,或NaNS,则有限子例程返回一个非零值。
如果 x 参数是 NaNS 或 NaNQ,那么 isnan 子例程返回非零值。 否则,将返回 0。
如果 x 和 y 之间的浮点比较是无序的,那么 un有序 子例程将返回非零值。 否则,将返回 0。
注: 编译使用 libm.a 库中带有 -lm 标志的子例程的任何例程。 例如,要编译 class.c 文件,请输入:
cc class.c -lm参数
| 项 | 描述 |
|---|---|
| X | 指定一些双精度浮点值。 |
| y | 指定一些双精度浮点值。 |
错误代码
有限, isnan和 无序 子例程既不返回错误,也不设置浮点异常状态中的位,即使参数是 NaNS也是如此。