依据程序编译器的不同,int定义的字节数不同。 一般对于PC机而言 32位下 为4字节,64位下占8字节。
在苹果的api实现中,NSInteger是一个封装类型,它会识别当前操作系统的位数,自动返回最大的类型。
#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
32位下 NSInteger 其实就是 int。 64位下是 long。
32位时直接把 NSInteger 当 int 用就是了,64位时要考虑范围问题。
32位时直接把 NSInteger 当 int 用就是了,64位时要考虑范围问题。