C语言fenv头文件(fenv.h)中feholdexcept函数的用法及代码示例。
用法:
int feholdexcept (fenv_t* envp);
保留浮点异常
这个不间断模式防止浮点异常引发程序时停止程序的正常运行(带有陷阱或异常终止)。
调用此函数的程序应确保编译指示FENV_ACCESS已启用该调用。
参数
- envp
- 指向一个指针fenv_t存储浮点环境状态的对象。
返回值
零,如果函数成功完成,包括设置浮点环境马不停蹄模式。否则为非零值。
示例
/* feholdexcept/feupdateenv example */
#include <stdio.h> /* printf, puts */
#include <fenv.h> /* feholdexcept, feclearexcept, fetestexcept, feupdateenv, FE_* */
#include <math.h> /* log */
#pragma STDC FENV_ACCESS on
double log_zerook (double x) {
fenv_t fe;
feholdexcept(&fe);
x=log(x);
feclearexcept (FE_OVERFLOW|FE_DIVBYZERO);
feupdateenv(&fe);
return x;
}
int main ()
{
feclearexcept (FE_ALL_EXCEPT);
printf ("log(0.0): %f\n", log_zerook(0.0));
if (!fetestexcept(FE_ALL_EXCEPT))
puts ("no exceptions raised");
return 0;
}
可能的输出:
log(0.0): -inf no exceptions raised |
相关用法
- C语言 feclearexcept用法及代码示例
- C语言 feraiseexcept用法及代码示例
- C语言 fegetround用法及代码示例
- C语言 fesetround用法及代码示例
- C语言 feupdateenv用法及代码示例
- C语言 fetestexcept用法及代码示例
注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C feholdexcept function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。