Spec-Zone.ru › C

HUGE_VALF, HUGE_VAL, HUGE_VALL

Определено в заголовочном файле <math.h>
#define HUGE_VALF /*implementation defined*/
(с C99)
#define HUGE_VAL  /*implementation defined*/
#define HUGE_VALL /*implementation defined*/
(с C99)

Макросы HUGE_VALF, HUGE_VAL и HUGE_VALL расширяются до положительных констант с плавающей точкой, которые равны значениям, возвращаемым функциями и операторами с плавающей точкой в случае переполнения (см. math_errhandling).

Константа Объяснение
HUGE_VALF Расширяется до положительного выражения с плавающей точкой, указывающего на переполнение
HUGE_VAL Расширяется до положительного выражения с плавающей точкой, указывающего на переполнение, которое необязательно представимо как число с плавающей точкой.
HUGE_VALL Расширяется до положительного выражения с плавающей точкой, указывающего на переполнение, которое необязательно представимо как число с плавающей точкой одинарной или двойной точности.

В реализациях, поддерживающих бесконечности с плавающей точкой, эти макросы всегда расширяются до положительных бесконечностей типов float, double, и long double, соответственно.

Пример

#include <math.h>
#include <stdio.h>
 
int main(void)
{
    const double result = 1.0 / 0.0;
    printf("1.0/0.0 == %f\n", result);
    if (result == HUGE_VAL)
        puts("1.0/0.0 == HUGE_VAL");
}

Возможный вывод:

1.0/0.0 == inf
1.0/0.0 == HUGE_VAL

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: TBD)
    • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: TBD)
    • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: 231)
    • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: 517)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: 212)
    • F.9/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (стр: 454)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
    • 4.5 HUGE_VAL

См. также

INFINITY
(C99)
соответствует положительной бесконечности или значению, гарантированно вызывающему переполнение float
(макроконстанта)
Документация C++ по HUGE_VAL

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/HUGE_VAL

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API