typedef CGFLOAT_TYPE CGFloat;
這里可以看到CGFloat
是CGFLOAT_TYPE
的宏定義,那么這個(gè)又是什么?
/* 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位系統(tǒng)下,CGFLOAT
是double
類型,32位系統(tǒng)下是float
類型.
CGFLOAT_MIN //最小的非負(fù)浮點(diǎn)值
CGFLOAT_MAX //最大的浮點(diǎn)值
// double
DBL_MIN //最小的非負(fù)浮點(diǎn)值
DBL_MAX //最大的浮點(diǎn)值
// float
FLT_MIN //最小的非負(fù)浮點(diǎn)值
FLT_MAX //最大的浮點(diǎn)值
所以在代碼里需要使用最小的非負(fù)浮點(diǎn)值
和最大的浮點(diǎn)值
時(shí) 推薦使用CGFLOAT_MIN
和CGFLOAT_MAX
.