首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当需要unsigned int时返回unsigned long的后果

当需要unsigned int时返回unsigned long的后果
EN

Stack Overflow用户
提问于 2012-03-26 19:45:29
回答 1查看 279关注 0票数 0

我在一个类上实现了-hash方法,它应该返回一个NSUInteger。我对它的实现如下所示:

代码语言:javascript
复制
- (NSUInteger) hash {
    return CFHash(self->cfObj);
}

现在,CFHash返回一个CFHashCode,这是一个经过typedef处理的unsigned long,但据我所知,NSUInteger既可以是unsigned long,也可以是unsigned int

如果在应用程序需要unsigned int的情况下返回unsigned long,我会遇到什么问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 19:58:11

你在为什么平台编译?正如您所指出的,NSUInteger既可以是无符号的长整型,也可以是无符号的整型,这取决于您的体系结构是32位还是64位。对于64位的OS应用程序来说,这显然没问题。

我认为即使是在iOS或32位OS应用程序上,你也应该是安全的。docs描述了CFHash的返回类型

代码语言:javascript
复制
An integer of type CFHashCode that represents a hashing value for cf.

这不是一个令人信服的理由,但default implementation of hash apparently uses CFHash anyway

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9871501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档