类, _class ,有限, isnan 或无序子例程

用途

确定浮点数的分类。

IEEE 数学库 (libm.a) 或 System V 数学库 (libmsaa.a)

语法

#include <math.h>
#include <float.h>
int
class(
x)
double x;
#include <math.h>
#include <float.h>
int
_class(
x)
double x;
#include <math.h>
int finite(x)
double x;
#include <math.h>
int isnan(x)
double x;
#include <math.h>
int unordered(x, y)
double x, y;

描述

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。

如果 xy 之间的浮点比较是无序的,那么 un有序 子例程将返回非零值。 否则,将返回 0。

注: 编译使用 libm.a 库中带有 -lm 标志的子例程的任何例程。 例如,要编译 class.c 文件,请输入:
cc class.c -lm

参数

描述
X 指定一些双精度浮点值。
y 指定一些双精度浮点值。

错误代码

有限isnan无序 子例程既不返回错误,也不设置浮点异常状态中的位,即使参数是 NaNS也是如此。