- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我有以下结构——
struct MyStruct {
var value1: UInt16
var value2: UInt16
}
我在我的代码中的某处使用这个结构,就像这样 -
var s = MyStruct(value1: UInt16(0), value2: UInt16(0))
我知道该结构将需要 32 位存储空间来存储两个 16 位整数 –
我不确定的是,除了为变量 s
分配一个 64 位指针之外,swift 是否为每个值分配了两个额外的 64 位指针。
这是否意味着上述代码的总存储需求会导致以下结果?
MyStruct.value1 - 16-bits
MyStruct.value1 ptr - 64-bits
MyStruct.value2 - 16-bits
MyStruct.value2 ptr - 64-bits
s ptr - 64-bits
–––––––––––––––––––––––––––––
Total - 224-bits
有人可以澄清一下吗?
最佳答案
MyStruct 是 4 个字节,因为 sizeof(UInt16)
是 2 个字节。要针对任何给定类型对此进行测试,请使用 sizeof
。 sizeof
以字节为单位返回内存。
let size = sizeof(MyStruct) //4
如果您想获得给定实例的大小,您可以使用 sizeOfValue
。
var s = MyStruct(value1: UInt16(0), value2: UInt16(0))
let sSize = sizeofValue(s) //4
我相信指针的大小将取决于架构/编译器,在大多数计算机和许多较新的手机上都是 64 位的,但旧手机可能是 32 位的。
我认为没有办法真正获得指向 MyStruct.value1
的指针,如果我错了请纠正我(我正在尝试 &s.value1
.
Swift 中的结构是在堆栈上创建和传递的,这就是为什么它们具有值语义而不是引用语义的原因。
当在函数中创建结构时,它存储在堆栈中,因此它的内存在函数结束时被释放。它的引用只是堆栈指针或帧指针的偏移量。
关于xcode - 这个 Swift 结构实际使用了多少存储空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445016/
这个问题已经有答案了: Add a property to a JavaScript object using a variable as the name? (14 个回答) 已关闭 6 年前。 目
每个 Azure 存储帐户的卷限制为 200 TB(200 TB)。这听起来确实很大,但如果您将文件存储在每个 25 MB 的 Blob 存储中,则可以存储大约 400 万个文件,这很好,但并非不可能
我在 Applestore 中发布了我的应用程序以供审核,但遭到拒绝,上面写着: ”在启动和内容下载时,您的应用程序会在用户的 iCloud 上存储 1.4 GB,这不符合 iOS 数据存储指南。"
我对 laravel 的 remember me 功能有点问题。通常,laravel 添加一个 session cookie、一个xsrf token 和具有随机哈希值的第三个 cookie。 (下图
我需要在 SQL 中存储十亿个直方图。这些直方图具有相同的桶,但它们的计数可能有很大的差异,但是,大多数桶在很多时候都是 0。 我最初的尝试是让每个直方图有一行,其中每一列代表一个桶。 我对我的数据类
我正在处理 70GB 的数据集 较早使用 df -BG命令 我被展示了 Filesystem 1G-blocks Used Available Use% Mounted on overlay
有些文件每天都会上传到 FTP 服务器,我需要将这些文件放在 Google Cloud Storage 下。我不想让上传文件的用户安装任何额外的软件,只是让他们继续使用他们的 FTP 客户端。有没有办
如何上传内容类型为 mutlipart/formdata ---boundaryString 的文件使用 signed url谷歌存储? 我面临的问题是,当我们使用浏览器上传文件时,浏览器将内容类型设
版本: 11.2.0.2.0 我想验证我在手册中再次阅读的以下断言: The PLS_INTEGER data type has these advantages over the NUMBER da
我只是在寻找澄清,因为文档指出一个空的、刚刚创建的 SQL 实例应该只占用大约 250Mb。 从文档中引用我可以在存储空间上找到的任何内容: MySQL Second Generation insta
我是一名优秀的程序员,十分优秀!