1.NSInteger:2.NSUInteger:3.CGFloat
1.复习:(1) int:占32位的整数
(2) long:占64位的整数
(3)在int与long前加上unsigned 表示无符号
(4)float:占32位的浮点数(5)double:占64位的浮点数1. NSInteger、NSUInteger、CGFloat不是类,而是基本数据类型2. NSInteger在32系统中就是int,在64位系统中就是long
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
3. NSUInteger在32系统中就是unsigned int,在64位系统中就是unsigned long
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
4. CGFloat在32位系统中就是float,在64位系统中就是double
#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
typedef CGFLOAT_TYPE CGFloat;
#define CGFLOAT_DEFINED 1
示例:void f1() {
NSInteger i = 23;
NSLog(@"%ld", i);
CGFloat d = 23.2;
NSLog(@"%g", d);
}