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
См. также
|
(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