📅  最后修改于: 2023-12-03 15:29:49.308000             🧑  作者: Mango
fegetexceptflag()
函数可以获取当前浮点环境的异常掩码,以及指示哪些浮点异常来自于陷阱而不是异常浮点运算的标志。
该函数位于 <cfenv>
头文件中。
#include <cfenv>
int fegetexceptflag(fexcept_t* flagp, int excepts);
flagp
:指向将异常标志存储在其中的 fexcept_t
类型的地址。excepts
:一个整数,用于指定要检索哪些异常标志。#include <iostream>
#include <cfenv>
#include <cmath>
#pragma STDC FENV_ACCESS on
int main() {
double x = 1.0, y = 0.0;
int ex;
// 触发浮点异常,将浮点异常置为存储器中的 fexcept_t 变量
fexcept_t ex_flags;
feclearexcept(FE_ALL_EXCEPT);
x = std::sqrt(y);
fegetexceptflag(&ex_flags, FE_ALL_EXCEPT);
if (fetestexcept(FE_INVALID)) {
std::cout << "Invalid argument to square root.\n";
}
std::cout << "Invalid exceptions raised: 0x" << std::hex << ex_flags << ".\n";
return 0;
}
fegetexceptflag()
函数可以用于获取包含有关当前浮点环境中发生了哪些异常的信息的 fexcept_t
变量。调用该函数后,在 fexcept_t
变量中的异常标志描述了先前发生了哪些异常。