HUGE_VALF, HUGE_VAL, HUGE_VALL

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)
(C99)
(C23)
(C23)
三角及双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点操作函数
(C99)(C99)
(C99)(C23)
(C99)
窄化运算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量与量指数函数
十进制重编码函数
全序与载荷函数
分类
(C99)
(C99)
(C99)
(C23)
类型
宏常量
特殊浮点值
HUGE_VALFHUGE_VALHUGE_VALLHUGE_VALDN
(C99)(C99)(C23)
(C99)(C23)
参数与返回值
错误处理
 
定义于头文件 <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 标准(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 的值
(宏常量)