R..*_*R.. 14 c floating-point signals exception fenv
所有文档(在标准中)都fenv.h
相当混乱,但我对feholdexcept
浮点异常的"不停模式"的概念特别困惑.据我所知,在任何IEEE浮点实现中,默认情况下异常都是非信令/"不停止",并且fenv.h
接口似乎无法启用信令模式,除非它是默认模式.feholdexcept
除非在非IEEE系统或具有非标准扩展的系统上设置信令异常掩码,否则整个概念是无用的?
假设您正在实现一个库,并且在调用代码之前,您不知道调用者可能在浮点环境中执行的操作.它们可能会取消屏蔽异常,并安装自定义陷阱处理程序,该处理程序会导致除零以生成值42.假设您的库依赖于具有默认的IEEE-754行为的除零.该feholdexcept
函数为您提供了强制执行此行为的方法.然后可以使用该fesetenv
函数恢复调用者的环境以及未屏蔽的异常.
这无疑是一个相当模糊的使用角落,但坦率地说,对大多数程序员而言,所有内容fenv.h
都相当模糊.
归档时间: |
|
查看次数: |
275 次 |
最近记录: |