Floating point environment
The floating-point environment is the set of floating-point status flags and control modes supported by the implementation. It is thread-local, each thread inherits the initial state of its floating-point environment from the parent thread. Floating-point operations modify the floating-point status flags to indicate abnormal results or auxiliary information. The state of floating-point control modes affects the outcomes of some floating-point operations.
The floating-point environment access and modification is only meaningful when #pragma STDC FENV_ACCESS is set to ON. Otherwise the implementation is free to assume that floating-point control modes are always the default ones and that floating-point status flags are never tested or modified. In practice, few current compilers support the #pragma explicitly, but most compilers allow meaningful access to the floating-point environment anyway.
[edit] Types
|   Defined in header <fenv.h>  
 | |
| fenv_t | The type representing the entire floating-point environment | 
| fexcept_t | The type representing all floating-point status flags collectively | 
[edit] Functions
|    (C99) 
 | 
   clears the specified floating-point status flags  (function)  | 
|    (C99) 
 | 
   determines which of the specified floating-point status flags are set  (function)  | 
|    (C99) 
 | 
   raises the specified floating-point exceptions  (function)  | 
|    
(C99) 
(C99)  | 
  copies the state of the specified floating-point status flags from or to the floating-point environment  (function)  | 
|    
(C99) 
(C99)  | 
   gets or sets rounding  direction   (function)  | 
|    (C99) 
 | 
    saves or restores the current floating point environment  (function)  | 
|    (C99) 
 | 
   saves the environment, clears all status flags and ignores all future errors  (function)  | 
|    (C99) 
 | 
   restores the floating-point environment and raises the previously raise exceptions  (function)  | 
[edit] Macros
|    floating-point exceptions   (macro constant)  | 
|
|    floating-point rounding direction  (macro constant)  | 
|
|    (C99) 
 | 
   default floating-point environment  (macro constant)  | 
| This section is incomplete Reason: FENV_ACCESS  |