C
数值 | Numerics

islessgreater

islessgreater

在头文件中定义
#define islessgreater(x, y) /* implementation defined */(since C99)

确定浮点数x是否小于或大于浮点数y,而不设置浮点异常。

参数

x-浮点值
y-浮点值

返回值

非零整数值x < y || x > y,​0​否则。

笔记

如果其中一个或两个参数都是NaN,则可能会引发内置operator<和operator>浮点数FE_INVALID。此功能是表达式的“安静”版本x < y || x > y。宏不会评估x和y两次。

#include <stdio.h> #include <math.h> int main(void) { printf("islessgreater(2.0,1.0) = %d\n", islessgreater(2.0,1.0) printf("islessgreater(1.0,2.0) = %d\n", islessgreater(1.0,2.0) printf("islessgreater(1.0,1.0) = %d\n", islessgreater(1.0,1.0) printf("islessgreater(INFINITY,1.0) = %d\n", islessgreater(INFINITY,1.0) printf("islessgreater(1.0,NAN) = %d\n", islessgreater(1.0,NAN) return 0; }

可能的输出:

islessgreater(2.0,1.0) = 1 islessgreater(1.0,2.0) = 1 islessgreater(1.0,1.0) = 0 islessgreater(INFINITY,1.0) = 1 islessgreater(1.0,NAN) = 0

参考

  • C11标准(ISO / IEC 9899:2011):