美文网首页
Swift MemoryLayout 内存大小,内存地址

Swift MemoryLayout 内存大小,内存地址

作者: CodingTom | 来源:发表于2021-05-28 09:38 被阅读0次
struct GameBoard {
  var p1Score: Int32
  var p2Score: Int32
  var gameOver: Bool 
}
//获取内存占用大小
MemoryLayout<GameBoard>.self.size  //4 + 4 + 1 = 9(bytes)

在 Swift 3.0 中,可以使用 withUnsafePointer(to:_:) 函数来打印值类型变量的内存地址,这样就能看出两个变量的内存地址并不相同。

let coordC = CoordinateStruct(x: 0, y: 0)
withUnsafePointer(to: &coordC) { print("\($0)") }

在 Swift 3.0 中,可以使用以下方法来打印引用类型变量指向的内存地址。从中即可发现,两个变量指向的是同一块内存空间。

let dogC = Dog()
dogC.height = 50

print(Unmanaged.passUnretained(dogC).toOpaque())
print(Unmanaged.passUnretained(dogC).toOpaque())

相关开源库

https://github.com/CoderMJLee/Mems

相关文章

网友评论

      本文标题:Swift MemoryLayout 内存大小,内存地址

      本文链接:https://www.haomeiwen.com/subject/viojsltx.html