• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2022-02-14 15:19 Aet 隐藏边栏 |   抢沙发  4 
文章评分 2 次,平均分 5.0

类型

  1. fenv_t
    1. 浮点环境类型
    2. 可以表示浮点环境 整个状态的类型,包括其状态标志(如活动浮点异常)和控制模式(如舍入方向模式
  2. fexcept_t
    1. 浮点异常类型
    2. 可以共同表示所有浮点状态标志的状态的类型,包括活动的浮点异常以及实现与它们的状态相关联的任何附加信息

函数

  1. int feclearexcept (int excepts);
    1. 尝试清除由excepts 指定的浮点异常
  2. int feraiseexcept (int excepts);
    1. 尝试引发由excepts指定的浮点异常。 如果指定了多个异常,则引发它们的顺序未指定。
  3. int fegetexceptflag (fexcept_t* flagp, int excepts);
    1. 尝试将由excepts 指定的浮点异常的表示形式存储到fexcept_t指向的对象。
  4. int fesetexceptflag (const fexcept_t* flagp, int excepts);
    1. 尝试使用存储在 flagp 指向的对象中的状态设置由excepts指示的异常。如果成功,该函数会更改浮点环境的当前状态,设置请求的异常标志,但不会实际引发异常。
  5. int fegetround (void);
    1. 返回一个值,该值指示舍入方向模式,如当前浮点环境中指定的那样
  6. int fesetround (int rdir);
    1. 将rdir 设置为浮点环境的当前舍入方向模式
  7. int fegetenv (fenv_t* envp);
    1. 尝试将浮点环境的当前状态存储在envp指向的对象中
  8. int fesetenv (const fenv_t* envp);
    1. 尝试建立由envp指向的对象表示的浮点环境的状态。浮点环境是一组影响浮点计算 的状态标志和控制模式(包括浮点异常舍入方向模式
    2. 如果成功,该函数会更改浮点环境 的当前状态,而不会实际引发此类状态中指定的异常。
  9. int feholdexcept (fenv_t* envp);
    1. 将浮点环境 的当前状态保存在envp指向的对象中
    2. 它会重置当前状态,并在支持的情况下将环境置于不间断模式
    3. 不间断模式可防止浮点异常
  10. int feupdateenv (const fenv_t* envp);
    1. 尝试建立由envp指向的对象表示的浮点环境的状态。然后它尝试引发调用之前在浮点环境中设置的异常。
  11. int fetestexcept (int excepts);
    1. 返回当前设置的异常,在excepts指定的那些中。

宏常量

  1. FE_DIVBYZERO
    1. 此宏扩展为一个类型的值,该值int标识在极点错误上引发的浮点异常
    2. 极点错误发生在运算具有渐近无穷大的结果时,例如除以零或. 它被定义为一个精确的 2 次幂的值,允许将多个浮点异常组合(使用按位 OR 运算符: )为一个值
宏观价值 描述
FE_DIVBYZERO 极点错误:除以零,或其他一些渐近无穷大的结果(来自有限参数)。
FE_INEXACT 不精确:结果不精确。
FE_INVALID 域错误:至少有一个参数是未定义函数的值。
FE_OVERFLOW 溢出范围错误:结果幅度太大,无法表示为返回类型的值。
FE_UNDERFLOW 下溢范围错误:结果幅度太小,无法表示为返回类型的值。
FE_ALL_EXCEPT 所有异常(选择实现支持的所有异常)。
  1. FE_INEXACT

    1. 此宏扩展为一个类型的值,该值int标识在不精确结果上引发的浮点异常
  2. FE_INVALID

    1. 此宏扩展为一个类型的值,该值int标识在无效参数上引发的浮点异常。引发无效参数异常以表示传递给函数的参数超出其
  3. FE_OVERFLOW

    1. 此宏扩展为int标识溢出范围错误引发的浮点异常的类型值。当操作的结果由于其幅度太大(正号或负号)而无法表示为其返回类型的值时,就会发生溢出范围错误
  4. FE_UNDERFLOW

    1. 此宏扩展为一个类型的值,int用于标识下溢范围错误引发的浮点异常。下溢范围错误发生在操作的结果不能表示为其返回类型的值时,因为它的大小太小(带有正号或负号)。 溢出的操作返回一个未指定的值,其大小不大于最小的标准化正数。
  5. FE_ALL_EXCEPT

    1. 这个宏扩展为一个类型的值,int结合了定义在(按位或)
  6. FE_DOWNWARD

    1. 此宏扩展为一个类型的值,int用于标识函数的向下舍入方向模式
  7. FE_TONEAREST

    1. 此宏扩展为一个类型的值,int用于标识函数的最近舍入方向模式
  8. FE_TOWARDZERO

    1. 此宏扩展为一个类型的值,该值int标识函数的趋向零舍入方向模式
  9. FE_UPWARD

    1. 此宏扩展为一个类型的值,int用于标识函数的向上舍入方向模式
宏观价值 描述
FE_DOWNWARD 向下圆。
FE_TONEAREST 四舍五入到最近。
FE_TOWARDZERO 向零舍入。
FE_UPWARD 向上圆。
  1. FE_DFL_ENV
    1. 此宏扩展为指向fenv_t可用于选择函数的默认环境节日环境feupdateenv. 默认环境是程序启动时浮点环境 的状态。
  2. FENV_ACCESS
    1. #pragma STDC FENV_ACCESS 开启:设置为on,程序会通知编译器它可能会访问浮点环境以测试其状态标志(异常)或在默认情况下以外的控制模式下运行
    2. #pragma STDC FENV_ACCESS 关闭:设置为off,编译器可能会执行某些可以破坏这些测试和模式更改的优化,因此在上述情况下访问*浮点环境会导致*未定义的行为

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享