gpt4 book ai didi

objective-c - Objective-C 原始数之间的区别

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:47 26 4
gpt4 key购买 nike

objective-c C 原始数有什么区别?我知道它们是什么以及如何使用它们(有点),但我不确定每一个的功能和用途是什么。谁能弄清楚哪些最适合某些场景,哪些不适合其他场景?

我可以用每个数字存储什么?我知道有些可以存储更精确的数字,有些只能存储整数。举例来说,我想存储一个纬度(可能从 CLLocation 对象中检索),我应该使用哪个来避免丢失任何数据?

我还注意到每个都有 unsigned 变体。这是什么意思,它与非无符号原始数字有何不同?

Apple has some interesting documentation关于这一点,但是它并不能完全满足我的问题。

最佳答案

好吧,首先像 int 这样的类型, float , double , long , 和 shortC 基元,而不是 Objective-C。您可能知道,Objective-C 是 C 的超集。Objective-C NSNumber是所有这些类型的包装类。

所以我将回答您关于这些 C 基元的问题,以及 Objective-C 如何解释它们。基本上,每种数字类型都可以归入以下两个类别之一:整数类型浮点类型


整数类型

  • 内部
  • 长长

这些只能存储整数(整数),并且具有两个特征:大小符号

Size是指一个类型在计算机中需要多少物理内存来存储,即多少字节。从技术上讲,为每种类型分配的确切内存取决于实现,但有一些保证:(1) char总是 1 字节 (2) sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long) .

Signedness 表示类型是否可以表示负值。所以一个带符号的整数,或者 int , 可以表示一定范围的负数或正数(传统上是 –2,147,483,648 到 2,147,483,647),以及一个无符号整数,或 unsigned int可以表示相同范围的数字,但都是正数(0 到 4,294,967,295)。


浮点类型

  • 漂浮
  • 长双

这些用于存储十进制值(又名分数),也按大小分类。同样,您唯一真正的保证是 sizeof(float) <= sizeof(double) <= sizeof (long double) .浮点类型是使用一种相当特殊的内存模型存储的,该模型可能难以理解,我不会深入探讨,但是有一个很好的指南 here .

RyPress 上有一篇关于 Objective-C 上下文中的 C 原语的精彩博客文章.许多介绍 CPS 的教科书也有很好的资源。

关于objective-c - Objective-C 原始数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17733890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com