C 参考手册

位置:首页 > 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_VALFHUGE_VALHUGE_VALL 宏展开成正浮点常量表达式,它们比较等于上溢情况中浮点函数和运算符的返回值(见 math_errhandling )。

 
常量 解释
HUGE_VALF 展开成指示上溢的正 float 表达式
HUGE_VAL 展开成指示上溢的正 double 表达式,不必可表示为 float
HUGE_VALL 展开成指示上溢的正 long double 表达式,不必可表示为 floatdouble

在支持浮点无穷大的平台上,这些宏始终分别展开成 floatdoublelong double 的正无穷大。

示例

#include <math.h>
#include <stdio.h>
int main(void)
{
    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\n");
}

可能的输出:

1.0/0.0 = inf
1.0/0.0 == HUGE_VAL

引用

  • 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

参阅

求值为正无穷大或保证溢出 float 的值
(宏常量)