HUGE_VALF, HUGE_VAL, HUGE_VALL

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
类型
(C99)(C99)    

(C99)(C99)    

函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
(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)
参数与返回值
(C99)(C99)(C99)(C99)(C99)    
错误处理
(C99)    

 
在标头 <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 (第 TBD 页)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (第 TBD 页)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (第 TBD 页)
  • 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 的值
(宏常量)