默认情况下我认为unsigned int
意味着unsigned long int
(32位)。同样,我认为unsigned long
默认为unsigned long int
(32位)。为什么NSNumber上的两个选择器(unsignedIntValue
和unsignedLongValue
),或者我应该担心数据类型的位长?
谢谢!
答案 0 :(得分:4)
在LP64(Mac OS 64位)上,long为64位宽,而int只有32位。
答案 1 :(得分:2)
我理解OSX和iOS的架构有限,但一般来说,除了标准中保证的基本相对顺序之外,你不应该对整数大小做任何假设。
如果您确实需要特定大小的整数值,请使用uint8_t,uint16_t,uint32_t和uint64_t类型。