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.