| 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 floatexpression that indicates overflow | 
| HUGE_VAL | Expands to positive doubleexpression that indicates overflow, not necessarily representable as afloat | 
| HUGE_VALL | Expands to positive long doubleexpression that indicates overflow, not necessarily representable as afloatordouble | 
On implementations that support floating-point infinities, these macros always expand to the positive infinities of float, double, and long double, respectively.
#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");
}Possible output:
1.0/0.0 == inf 1.0/0.0 == HUGE_VAL
| (C99) | evaluates to positive infinity or the value guaranteed to overflow a float(macro constant) | 
| C++ documentation for 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