typedef CGFLOAT_TYPE CGFloat;
这里可以看到CGFloat
是CGFLOAT_TYPE
的宏定义,那么这个又是什么?
/* Definition of `CGFLOAT_TYPE', `CGFLOAT_IS_DOUBLE', `CGFLOAT_MIN', and
`CGFLOAT_MAX'. */
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
# define CGFLOAT_IS_DOUBLE 1
# define CGFLOAT_MIN DBL_MIN
# define CGFLOAT_MAX DBL_MAX
#else
# define CGFLOAT_TYPE float
# define CGFLOAT_IS_DOUBLE 0
# define CGFLOAT_MIN FLT_MIN
# define CGFLOAT_MAX FLT_MAX
#endif
也就是说在64位系统下,CGFLOAT
是double
类型,32位系统下是float
类型.
CGFLOAT_MIN //最小的非负浮点值
CGFLOAT_MAX //最大的浮点值
// double
DBL_MIN //最小的非负浮点值
DBL_MAX //最大的浮点值
// float
FLT_MIN //最小的非负浮点值
FLT_MAX //最大的浮点值
所以在代码里需要使用最小的非负浮点值
和最大的浮点值
时 推荐使用CGFLOAT_MIN
和CGFLOAT_MAX
.