float.h,该如何处理
float.h
float.h中的它们都代表什么意思啊,特别是大写字母的解释
#define _MCW_EM 0x0008001F /* Error masks */
#define _MCW_IC 0x00040000 /* Infinity */
#define _MCW_RC 0x00000300 /* Rounding */
#define _MCW_PC 0x00030000 /* Precision */
#define _EM_INVALID 0x00000010
#define _EM_DENORMAL 0x00080000
#define _EM_ZERODIVIDE 0x00000008
#define _EM_OVERFLOW 0x00000004
#define _EM_UNDERFLOW 0x00000002
#define _EM_INEXACT 0x00000001
#define _IC_AFFINE 0x00040000
#define _IC_PROJECTIVE 0x00000000
#define _RC_CHOP 0x00000300
#define _RC_UP 0x00000200
#define _RC_DOWN 0x00000100
#define _RC_NEAR 0x00000000
#define _PC_24 0x00020000
#define _PC_53 0x00010000
#define _PC_64 0x00000000
#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */
#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */
#define _FPCLASS_NINF 0x0004 /* Negative Infinity */
#define _FPCLASS_NN 0x0008 /* Negative Normal */
#define _FPCLASS_ND 0x0010 /* Negative Denormal */
#define _FPCLASS_NZ 0x0020 /* Negative Zero */
#define _FPCLASS_PZ 0x0040 /* Positive Zero */
#define _FPCLASS_PD 0x0080 /* Positive Denormal */
#define _FPCLASS_PN 0x0100 /* Positive Normal */
#define _FPCLASS_PINF 0x0200 /* Positive Infinity */
#define _SW_UNEMULATED 0x0040 /* unemulated instruction */
#define _SW_SQRTNEG 0x0080 /* square root of a neg number */
#define _SW_* 0x0200 /* FP stack overflow */
#define _SW_STACKUNDERFLOW 0x0400 /* FP stack underflow */
#define _FPE_INVALID 0x81
#define _FPE_DENORMAL 0x82
#define _FPE_ZERODIVIDE 0x83
#define _FPE_OVERFLOW 0x84
#define _FPE_UNDERFLOW 0x85
#define _FPE_INEXACT 0x86
#define _FPE_UNEMULATED 0x87
#define _FPE_SQRTNEG 0x88
#define _FPE_* 0x8a
#define _FPE_STACKUNDERFLOW 0x8b
#define _FPE_EXPLICITGEN 0x8c /* raise( SIGFPE ); */
------解决方案--------------------
楼上好多跑题的……
这里的宏根本不是标准 C 定义的宏,是特定平台的扩展……
float.h中的它们都代表什么意思啊,特别是大写字母的解释
#define _MCW_EM 0x0008001F /* Error masks */
#define _MCW_IC 0x00040000 /* Infinity */
#define _MCW_RC 0x00000300 /* Rounding */
#define _MCW_PC 0x00030000 /* Precision */
#define _EM_INVALID 0x00000010
#define _EM_DENORMAL 0x00080000
#define _EM_ZERODIVIDE 0x00000008
#define _EM_OVERFLOW 0x00000004
#define _EM_UNDERFLOW 0x00000002
#define _EM_INEXACT 0x00000001
#define _IC_AFFINE 0x00040000
#define _IC_PROJECTIVE 0x00000000
#define _RC_CHOP 0x00000300
#define _RC_UP 0x00000200
#define _RC_DOWN 0x00000100
#define _RC_NEAR 0x00000000
#define _PC_24 0x00020000
#define _PC_53 0x00010000
#define _PC_64 0x00000000
#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */
#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */
#define _FPCLASS_NINF 0x0004 /* Negative Infinity */
#define _FPCLASS_NN 0x0008 /* Negative Normal */
#define _FPCLASS_ND 0x0010 /* Negative Denormal */
#define _FPCLASS_NZ 0x0020 /* Negative Zero */
#define _FPCLASS_PZ 0x0040 /* Positive Zero */
#define _FPCLASS_PD 0x0080 /* Positive Denormal */
#define _FPCLASS_PN 0x0100 /* Positive Normal */
#define _FPCLASS_PINF 0x0200 /* Positive Infinity */
#define _SW_UNEMULATED 0x0040 /* unemulated instruction */
#define _SW_SQRTNEG 0x0080 /* square root of a neg number */
#define _SW_* 0x0200 /* FP stack overflow */
#define _SW_STACKUNDERFLOW 0x0400 /* FP stack underflow */
#define _FPE_INVALID 0x81
#define _FPE_DENORMAL 0x82
#define _FPE_ZERODIVIDE 0x83
#define _FPE_OVERFLOW 0x84
#define _FPE_UNDERFLOW 0x85
#define _FPE_INEXACT 0x86
#define _FPE_UNEMULATED 0x87
#define _FPE_SQRTNEG 0x88
#define _FPE_* 0x8a
#define _FPE_STACKUNDERFLOW 0x8b
#define _FPE_EXPLICITGEN 0x8c /* raise( SIGFPE ); */
------解决方案--------------------
楼上好多跑题的……
这里的宏根本不是标准 C 定义的宏,是特定平台的扩展……
- C/C++ code
#define _MCW_EM 0x0008001F /* Error masks */ #define _MCW_IC 0x00040000 /* Infinity */ #define _MCW_RC 0x00000300 /* Rounding */ #define _MCW_PC 0x00030000 /* Precision */ //异常掩码(Exception Masks) #define _EM_INVALID 0x00000010 //非法操作异常 #define _EM_DENORMAL 0x00080000 //弱规范数异常 #define _EM_ZERODIVIDE 0x00000008 //被零除异常 #define _EM_OVERFLOW 0x00000004 //上溢出异常 #define _EM_UNDERFLOW 0x00000002 //下溢出异常 #define _EM_INEXACT 0x00000001 //不精确异常 //这两个还没搞清楚 #define _IC_AFFINE 0x00040000 #define _IC_PROJECTIVE 0x00000000 //舍入控制 #define _RC_CHOP 0x00000300 //截断舍入 #define _RC_UP 0x00000200 //向上舍入 #define _RC_DOWN 0x00000100 //向下舍入 #define _RC_NEAR 0x00000000 //最近舍入 //精度控制 #define _PC_24 0x00020000 //24 位精度(IEEE 单精度浮点) #define _PC_53 0x00010000 //53 位精度(IEEE 双精度浮点) #define _PC_64 0x00000000 //64 位精度(IEEE 扩展双精度浮点) //类型区分 #define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */ //SNAN #define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */ //QNAN #define _FPCLASS_NINF 0x0004 /* Negative Infinity */ //负无穷 #define _FPCLASS_NN 0x0008 /* Negative Normal */ //普通负数 #define _FPCLASS_ND 0x0010 /* Negative Denormal */ //负弱规范数 #define _FPCLASS_NZ 0x0020 /* Negative Zero */ //负零 #define _FPCLASS_PZ 0x0040 /* Positive Zero */ //正零 #define _FPCLASS_PD 0x0080 /* Positive Denormal */ //正弱规范数 #define _FPCLASS_PN 0x0100 /* Positive Normal */ //普通正数 #define _FPCLASS_PINF 0x0200 /* Positive Infinity */ //下面四个不太清楚 #define _SW_UNEMULATED 0x0040 /* unemulated instruction */ #define _SW_SQRTNEG 0x0080 /* square root of a neg number */ #define _SW_* 0x0200 /* FP stack overflow */ #define _SW_STACKUNDERFLOW 0x0400 /* FP stack underflow */ //下面是一些浮点异常,不解释了 #define _FPE_INVALID 0x81 #define _FPE_DENORMAL 0x82 #define _FPE_ZERODIVIDE 0x83 #define _FPE_OVERFLOW 0x84 #define _FPE_UNDERFLOW 0x85 #define _FPE_INEXACT 0x86 #define _FPE_UNEMULATED 0x87 #define _FPE_SQRTNEG 0x88 #define _FPE_* 0x8a #define _FPE_STACKUNDERFLOW 0x8b #define _FPE_EXPLICITGEN 0x8c /* raise( SIGFPE ); */