命名空间
变体
操作

HUGE_VALF, HUGE_VAL, HUGE_VALL

来自 cppreference.cn
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值运算
(C99)
(C99)
指数函数
(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)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子和量子指数
十进制重编码函数
总顺序和有效载荷函数
分类
(C99)
(C99)
(C99)
(C23)
误差和伽玛函数
(C99)
(C99)
(C99)
(C99)
类型
宏常量
特殊浮点数值
HUGE_VALHUGE_VALFHUGE_VALLHUGE_VALDN
(C99)(C99)(C23)
(C99)(C23)
参数和返回值
错误处理
快速操作指示符
 
定义于头文件 <math.h>
#define HUGE_VALF /*实现定义*/
(自 C99)
#define HUGE_VAL  /*实现定义*/
#define HUGE_VALL /*实现定义*/
(自 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)
{
    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 (页码: 待定)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 待定)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 待定)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 231)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 517)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 212)
  • F.9/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (页码: 454)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.5 HUGE_VAL

[编辑] 参见

求值为正无穷大或保证溢出 float 的值
(宏常量) [编辑]
C++ 文档 关于 HUGE_VAL