#include <math.h>
其中复制出来为:
#define isnan(x) \
((sizeof(x) == sizeof(float)) \
? __ARM_isnanf(x) \
: __ARM_isnan(x))
/*
* Returns TRUE if x is a NaN.
*/
再展开一步为:
_ARMABI_INLINE_DEF _ARMABI_SOFTFP int __ARM_isnanf(float __x)
{
return (0x7f800000 - (__FLT(__x) & 0x7fffffff)) >> 31;
}
_ARMABI_INLINE_DEF _ARMABI_SOFTFP int __ARM_isnan(double __x)
{
unsigned __xf = __HI(__x) | ((__LO(__x) == 0) ? 0 : 1);
return (0x7ff00000 - (__xf & 0x7fffffff)) >> 31;
}
/* Return 1 if __x is a NaN, 0 otherwise */
/* Used by isnan macro */
|