首页 > 其他 > 详细

NSInteger 与 int的区别

时间:2015-03-23 17:58:15      阅读:222      评论:0      收藏:0      [点我收藏+]


    项目开发中经常会用到整型变量,出于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。






NSInteger 与 int的区别

原文:http://blog.csdn.net/mylizh/article/details/44565975

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!