Namespaces
Variants

HUGE_VALF, HUGE_VAL, HUGE_VALL

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
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
HUGE_VAL HUGE_VALF HUGE_VALL HUGE_VALD N
(C99) (C99) (C23)
Arguments and return values
Error handling
Fast operation indicators
헤더 파일에 정의됨 <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 오버플로우를 나타내는 양의 float 표현식으로 확장됨
HUGE_VAL 오버플로우를 나타내는 양의 double 표현식으로 확장되며, float 로 표현 가능하지 않을 수 있음
HUGE_VALL 오버플로우를 나타내는 양의 long double 표현식으로 확장되며, float 또는 double 로 표현 가능하지 않을 수 있음

부동소수점 무한대를 지원하는 구현에서, 이 매크로들은 항상 각각 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:2024):
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
  • C17 표준 (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 표준 (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 표준 (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 표준 (ISO/IEC 9899:1990):
  • 4.5 HUGE_VAL

참고 항목

양의 무한대로 평가되거나 float 가 오버플로우되는 것이 보장된 값
(매크로 상수)
C++ documentation for HUGE_VAL