islessgreater

< c‎ | numeric‎ | math
在标头 <math.h> 定义
#define islessgreater(x, y) /* 由实现定义 */
(C99 起)

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

参数

x - 浮点值
y - 浮点值

返回值

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

注解

若一或两个实参为 NaN,则内建的 operator<operator> 可能对浮点数引发 FE_INVALID。此宏是表达式 x < y || x > y 的“安静”版本。宏不会对 x 和 y 求值两次。

示例

#include <math.h>
#include <stdio.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

引用

  • C23 标准(ISO/IEC 9899:2024):
  • 7.12.14.5 The islessgreater macro (第 TBD 页)
  • F.10.11 Comparison macros (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12.14.5 The islessgreater macro (第 TBD 页)
  • F.10.11 Comparison macros (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.12.14.5 The islessgreater macro (第 261 页)
  • F.10.11 Comparison macros (第 531 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.12.14.5 The islessgreater macro (第 241-242 页)

参阅

(C99)
检查第一个浮点实参是否小于第二个
(宏函数)
(C99)
检查第一个浮点实参是否大于第二个
(宏函数)