C 语言中的类型, * 前缀的是 C99 新增的类型
sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
目前 short int 一般为16位,int 为32位,long long为64位,long随平台编译器而定,32位或64位
LP64 是 Unix 和 Unix 类的64位操作系统 (Linux,Mac OS X)
usr/include/objc NSObjCRuntime.h
#if __LP64__ || 0 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
可以看出来在 iOS Objective-C 中,64位平台上,NSInteger为long即64位
32位平台上,NSInteger为int即32位
CoreGraphics
CGFloat
#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
/* Definition of the `CGFloat' type and `CGFLOAT_DEFINED'. */
typedef CGFLOAT_TYPE CGFloat;
#define CGFLOAT_DEFINED 1
CGFloat 在64位平台上为 double 双精度类型,32平台上为 float 单精度类型