HUGE_VALF, HUGE_VAL, HUGE_VALL

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
remainder(C99)
remquo(C99)
fma(C99)
fmax(C99)
fmin(C99)
fdim(C99)
nan
nanf
nanl
(C99)
(C99)
(C99)
指数函数
exp
exp2(C99)
expm1(C99)
log
log10
log1p(C99)
log2(C99)
幂函数
sqrt
cbrt(C99)
hypot(C99)
pow
三角及双曲函数
sinh
cosh
tanh
asinh(C99)
acosh(C99)
atanh(C99)
误差及伽马函数
erf(C99)
erfc(C99)
lgamma(C99)
tgamma(C99)
临近整数的浮点运算
ceil
floor
round
lround
llround
(C99)
(C99)
(C99)
trunc(C99)
nearbyint(C99)
rint
lrint
llrint
(C99)
(C99)
(C99)
浮点数操作函数
ldexp
scalbn
scalbln
(C99)
(C99)
ilogb(C99)
logb(C99)
分类
fpclassify(C99)
isfinite(C99)
isinf(C99)
isnan(C99)
isnormal(C99)
signbit(C99)
宏常量
HUGE_VALF
HUGE_VAL
HUGE_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的值
(宏常量) [edit]
HUGE_VALC++文档