Namespaces
Variants

islessgreater

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
(C99)
islessgreater
(C99)
(C23)

Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Определено в заголовочном файле <math.h>
#define islessgreater(x, y) /* implementation defined */
(начиная с C99)

Определяет, является ли число с плавающей запятой x меньше или больше числа с плавающей запятой y , без установки исключений с плавающей запятой.

Содержание

Параметры

x - значение с плавающей точкой
y - значение с плавающей точкой

Возвращаемое значение

Ненулевое целочисленное значение, если x < y || x > y , 0 в противном случае.

Примечания

Встроенные операторы operator < и operator > для чисел с плавающей точкой могут вызывать FE_INVALID если один или оба аргумента являются NaN. Данная функция является "тихой" версией выражения 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 Макрос islessgreater (стр.: TBD)
  • F.10.11 Макросы сравнения (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.12.14.5 Макрос islessgreater (стр.: TBD)
  • F.10.11 Макросы сравнения (стр.: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.12.14.5 Макрос islessgreater (стр. 261)
  • F.10.11 Макросы сравнения (стр. 531)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.12.14.5 Макрос islessgreater (стр: 241-242)

Смотрите также

(C99)
проверяет, является ли первый аргумент с плавающей запятой меньше второго
(макрос-функция)
проверяет, является ли первый аргумент с плавающей запятой больше второго
(макрос-функция)
C++ documentation для islessgreater