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_STACKOVERFLOW 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_STACKOVERFLOW 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_STACKOVERFLOW 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_STACKOVERFLOW 0x8a#define _FPE_STACKUNDERFLOW 0x8b#define _FPE_EXPLICITGEN 0x8c /* raise( SIGFPE ); */