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
.