如何解决feholdexcept等的用途是什么?
| 所有“ 0”的文档(在标准中)都相当混乱,但是我对“ 1”和浮点异常的“不间断模式”的概念特别困惑。据我所知,在任何IEEE浮点实现上,默认情况下都是非信号处理/“不间断”例外,除非是默认值,否则“ 0”接口似乎无法提供启用信令模式的方法。除了非IEEE系统或具有非标准扩展名的用于设置信令异常掩码的系统以外,“ 1”的整个概念是否没有用?解决方法
假设您正在实现一个库,并且您对调用者在调用代码之前可能会执行的浮点环境一无所知。他们可能会揭露异常,并安装一个自定义陷阱处理程序,该处理程序将导致被零除产生值42。假设您的库依赖于默认的IEEE-754行为被零除。
feholdexcept
函数使您可以强制执行此行为。然后可以使用fesetenv
函数恢复带有未屏蔽异常的呼叫者环境。
诚然,这是一个相当晦涩的用法,但是坦率地说,fenv.h
中的所有内容对于大多数程序员来说都是晦涩的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。