浮点环境
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    浮点环境是浮点状态标志及实现所支持的控制模式的集合。它是线程局域的,每个线程从亲线程继承其浮点环境的初始状态。浮点运算会修改指示反常值或补助信息的浮点状态标志。浮点控制模式影响浮点运算的结果。
仅若设置 
#pragma STDC FENV_ACCESS 为 ON ,浮点环境的访问及修改才有意义。否则具体实现可以自由地假设浮点控制模式始终是默认值,而且浮点状态标志始终不被检测或修改。实际上,当前只有少数编译器,如 HP aCC 、 Oracle Studio 和 IBM XL 显式支持 #pragma ,但总之多数编译器允许有意义地访问浮点环境。
类型
|   定义于头文件  
<fenv.h>  | |
| fenv_t | 表示整体浮点环境的类型 | 
| fexcept_t | 集中表示所有浮点异常状态标志的类型 | 
函数
|    (C99)  | 
   清除指定的浮点异常状态标志  (函数)  | 
|    (C99)  | 
   确认设置了哪些浮点异常状态标志  (函数)  | 
|    (C99)  | 
   引发指定的浮点异常状态标志  (函数)  | 
|    (C99)(C99)  | 
  将指定的浮点异常状态标志从指定的浮点环境获取,再设置到指定浮点环境的操作。  (函数)  | 
|    (C99)(C99)  | 
   获得或设置数字的舍入方向   (函数)  | 
|    (C99)(C99)  | 
   保存或恢复当前浮点环境,包括异常的标志和数字的舍弃模式   (函数)  | 
|    (C99)  | 
   保存当前环境的异常状态标志,再清除所有异常状态标志,并忽略所有未来错误  (函数)  | 
|    (C99)  | 
   恢复之前保存的浮点环境,并引发之前已经引发过的异常,使其存在于当前内存环境中  (函数)  | 
宏
|    浮点异常   (宏常量)  | |
|    浮点舍入方向  (宏常量)  | |
|    (C99)  | 
   默认浮点环境  (宏常量)  | 
引用
- C11 standard (ISO/IEC 9899:2011):
 
- 7.6 Floating-point environment <fenv.h> (p: 206-215)
 
- 7.31.4 Floating-point environment <fenv.h> (p: 455)
 
- C99 standard (ISO/IEC 9899:1999):
 
- 7.6 Floating-point environment <fenv.h> (p: 187-196)