18.6.3 浮点优化
一些没有包含在-o级别中的优化选项属于浮点操作,C99标准支持科学记数和高精度的浮点型,但是对于一个应用程序,你可能更关心运行速度而非浮点型变量本身,因此,-ffast-math选项定义了预处理宏__FAST_MATH__ ,指示编译器不用依赖于IEEE和ISO的浮点数学标准,--ffast-math是一组选项,具有下面六个独立选项:
-fno-math-errno
禁止在数学函数中使用全局变量error。
-funsafe-math-optimizations
“不安全的数学优化”是指那些可能违反浮点数学标准,或者没有确认的参数和结果。
-fno-trapping-math
产生“不间断”的代码,假设用户不能处理抛出的异常。
-ffinite-math-only
产生不包含无穷大参数和结果的执行代码。
-fno-rounding-math
此选项表示程序不依赖于某一个取整的行为,且并不尝试改变浮点环境中的默认取整模式,此设置是当前的默认配置,相反的设置项-frounding-math目前还在实验中。
-fno-signaling-nans
此选项允许浮点数边界值的优化。