📜  C C++中的fegetenv()函数(1)

📅  最后修改于: 2023-12-03 14:59:35.886000             🧑  作者: Mango

C/C++中的fegetenv()函数

fegetenv()是C/C++数学库中的一个函数,用于获取在数学环境中设置的浮点环境。它返回一个表示浮点环境的结构体fenv_t,其中包含控制、状态和轮询位。它是IEEE 754标准中浮点环境的一部分。

语法
#include <fenv.h>
int fegetenv(fenv_t *envp);
参数
  1. envp:指向浮点环境的指针。
返回值
  • 如果成功,则返回0。
  • 如果发生错误,则返回其他值(与errno设置相关)。
函数说明

fegetenv()函数会将当前设置的浮点环境拷贝到envp指向的结构体中。这个结构体fenv_t包含了浮点状态信息和控制、状态和轮询位。如果成功,fegetenv()函数将返回0。

示例
#include <stdio.h>
#include <fenv.h>

#pragma STDC FENV_ACCESS ON

int main()
{
    // 判断系统是否支持浮点数内存访问
    #ifdef FE_DFL_ENV
        printf("FE_DFL_ENV is defined\n");
    #else
        printf("NO FE_DFL_ENV\n");
    #endif

    fenv_t env;
    // 获取浮点环境
    if (fegetenv(&env) != 0) {
        printf("fegetenv error\n");
        return -1;
    }

    // 在此处处理浮点数操作...

    // 恢复浮点环境
    if (fesetenv(&env) != 0) {
        printf("fesetenv error\n");
        return -1;
    }

    return 0;
}
参考文献