HUGE_VALF, HUGE_VAL, HUGE_VALL

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
(C99)(C99)
宏常量
HUGE_VALFHUGE_VALHUGE_VALL
(C99)(C99)
 
定义于头文件 <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的值
(宏常量)