Home C&C++函数库 c++ 语法 程序源码 Linux C库

FENV_ACCESS

宏常量   <cfenv>

on (1) #pragma STDC FENV_ACCESS on
off (2) #pragma STDC FENV_ACCESS off


访问浮点环境
如果设置为on,程序通知编译器它可以访问浮点环境来测试它的状态标志(异常)或在非默认的控制模式下运行。

如果设置为off,编译器可能会执行某些优化,从而破坏这些测试和模式更改, 因此在上述情况下访问浮点环境会导致未定义的行为。

该pragma的默认状态是开启还是关闭取决于编译器设置和库实现。

pragma声明将出现以下两种情况:
  • 在任意外部声明之外:它的效果将持续到遇到另一个FENV_ACCESS语句,或直到编译单元结束。
  • 在复合语句中:在这种情况下,它应该在所有显式声明和语句之前。 它的效果一直持续到遇到另一个FENV_ACCESS语句(例如嵌套复合语句), 或者直到复合语句结束。在复合语句之后,pragma的状态将恢复到进入它之前的状态。
如果该pragma出现在其他上下文中,则该行为是未定义的。

当状态被此pragma指令改变时,浮点控制模式(如舍入方向)有其默认设置,但浮点状态标志的状态是未指定的。


🍄  另请参阅



fegetenv 获取浮点环境(function )
fesetenv 设置浮点环境(function )


联系我们 免责声明 关于CandCplus 网站地图