fenv.mh
来自「开放源码的编译器open watcom 1.6.0版的源代码」· MH 代码 · 共 97 行
MH
97 行
/***************************************************************************
* FILE: fenv.h (Floating-point environment)
*
:include crwat.sp
*
* Description: This header is part of the C99 standard library. It
* describes the floating-point environment
***************************************************************************/
#ifndef _FENV_H_INCLUDED
#define _FENV_H_INCLUDED
:include readonly.sp
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L
#ifndef _COMDEF_H_INCLUDED
#include <_comdef.h>
#endif
/* type for holding FPU environment */
:include pshpackl.sp
#if defined(__386__)
typedef struct {
unsigned short control_word;
unsigned short pad0;
unsigned short status_word;
unsigned short pad1;
unsigned short tag_word;
unsigned short pad2;
unsigned int ins_ptr_offset;
unsigned short ins_ptr_seg;
unsigned short opcode;
unsigned int op_ptr_offset;
unsigned short op_ptr_seg;
unsigned short pad3;
} fenv_t;
#else
typedef struct {
unsigned short control_word;
unsigned short status_word;
unsigned short tag_word;
unsigned short ins_ptr_offset;
unsigned short ins_ptr_seg;
unsigned short op_ptr_offset;
unsigned short op_ptr_seg;
} fenv_t;
#endif
:include poppack.sp
/* type for holding FPU exception flags */
typedef unsigned short fexcept_t;
/* exception flags */
#define FE_INVALID 1
#define FE_DENORMAL 2
#define FE_DIVBYZERO 4
#define FE_OVERFLOW 8
#define FE_UNDERFLOW 16
#define FE_INEXACT 32
#define FE_ALL_EXCEPT (FE_DIVBYZERO|FE_INEXACT|FE_INVALID|FE_OVERFLOW|FE_UNDERFLOW|FE_DENORMAL)
/* rounding modes */
#define FE_TONEAREST 0x0000
#define FE_DOWNWARD 0x0400
#define FE_TOWARDZERO 0x0C00
#define FE_UPWARD 0x0800
/* default FPU setup */
_WCRTDATA extern const fenv_t __fenv_h_default_environment;
#define FE_DFL_ENV &__fenv_h_default_environment
/* exception handling functions */
_WCRTLINK extern int feclearexcept( int __excepts );
_WCRTLINK extern int fegetexceptflag( fexcept_t *__flagp, int __excepts );
_WCRTLINK extern int feraiseexcept( int __excepts );
_WCRTLINK extern int fesetexceptflag( const fexcept_t *__flagp, int __excepts );
_WCRTLINK extern int fetestexcept( int __excepts );
#ifndef NO_EXT_KEYS
/* OW extensions */
_WCRTLINK extern void __feenableexcept( int __excepts );
_WCRTLINK extern void __fedisableexcept( int __excepts );
#endif
/* rounding mode functions */
_WCRTLINK extern int fegetround( void );
_WCRTLINK extern int fesetround( int __round );
/* FPU environment functions */
_WCRTLINK extern int fegetenv( fenv_t *__envp );
_WCRTLINK extern int feholdexcept( fenv_t *__envp );
_WCRTLINK extern int fesetenv( const fenv_t *__envp );
_WCRTLINK extern int feupdateenv( const fenv_t *__envp );
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?