NSInteger 与 int的区别


    项目开发中经常会用到整型变量,出于C编程习惯,我通常都用 int,后来发现别人的代码中有很多的 NSInteger,一直很疑惑、很想知道二者有什么不同,苦于各种事情,今天终于有空来研究一下:


    在苹果官方的API文档中,关于NSInteger有这样一段描述:

    When building 32-bit applications, NSInteger is a 32-bit integer. 

    A 64-bit application treats NSInteger as a 64-bit integer.

    翻译过来就是:在32位App中,NSInteger是32位整型,在64位App中,NSInteger是64位整型.


    同时,在头文件 中,对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

    由此可知:NSInteger能够自动匹配,在32位应用中,表示32位的整型,而在64位应用中,表示64位整型。

    所以在MAC_OS或iOS系统编程中如果用到整型或无符号整型变量时,尽量采用NSInteger或NSUInteger。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值