HUGE_VALF, HUGE_VAL, HUGE_VALL
From cppreference.com
C
Concurrency support (C11)
Common mathematical functions
Functions
Basic operations
Maximum/minimum operations
(C23)
(C23)
(C23)
(C23)
(C23)
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
Floating-point manipulation
Narrowing operations
Quantum and quantum exponent
(C23)
(C23)
(C23)
(C23)
Decimal re-encoding functions
(C23)
(C23)
(C23)
(C23)
Total order and payload functions
(C23)
(C23)
(C23)
(C23)
Classification
(C99)
(C23)
(C99)
(C99)
(C99)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C23)
(C23)
Error and gamma functions
Types
(C99)(C99)
(C99)(C99)
(C23)(C23)
Macro constants
Special floating-point values
HUGE_VALHUGE_VALFHUGE_VALLHUGE_VALDN
(C99)(C99)(C23)
(C99)(C23)
(C99)(C23)
Arguments and return values
(C99)(C99)
(C99)(C99)(C99)(C99)(C99)
(C23)(C23)
(C23)(C23)(C23)(C23)(C23)
Error handling
(C99)(C99)
(C99)
Fast operation indicators
(C99)(C99)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
(C99)(C23)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
Defined in header
<math.h>
#define HUGE_VALF /*implementation defined*/
(since C99)
#define HUGE_VAL /*implementation defined*/
#define HUGE_VALL /*implementation defined*/
(since C99)
The HUGE_VALF
, HUGE_VAL
and HUGE_VALL
macros expand to positive floating-point constant expressions which compare equal to the values returned by floating-point functions and operators in case of overflow (see math_errhandling
).
Constant
Explanation
HUGE_VALF
Expands to positive float expression that indicates overflow
HUGE_VAL
Expands to positive double expression that indicates overflow, not necessarily representable as a float
HUGE_VALL
Expands to positive long double expression that indicates overflow, not necessarily representable as a float or double
On implementations that support floating-point infinities, these macros always expand to the positive infinities of float, double, and long double, respectively.
[edit] Example
Run this code
Possible output:
1.0/0.0 == inf 1.0/0.0 == HUGE_VAL
[edit] References
- C23 standard (ISO/IEC 9899:2024):
- 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
- F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
- F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
- C11 standard (ISO/IEC 9899:2011):
- 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 231)
- F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 517)
- C99 standard (ISO/IEC 9899:1999):
- 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 212)
- F.9/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 454)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.5 HUGE_VAL
[edit] See also
(C99)
(macro constant) [edit]
C++ documentation for HUGE_VAL