swift 指针使用 (一)

在介绍指针使用有必要介绍下一个枚举那就是

MemoryLayout:有3个常用方法

MemoryLayout<T>.size,
MemoryLayout<T>.stride,
MemoryLayout<T>.alignment

分别是返回类型T占用内存大小,在连续储存空间中2个实例的距离,对齐方式。

看下面例子

MemoryLayout<Double>.size // 8
MemoryLayout<Double>.stride //8
MemoryLayout<Double>.alignment //8
MemoryLayout<Bool>.size //1
MemoryLayout<Bool>.stride //1
MemoryLayout<Bool>.alignment//1
struct Example {
    let x: Double
    let y: Double
    let isHave: Bool
}

MemoryLayout<Example>.size//17
MemoryLayout<Example>.stride//24
MemoryLayout<Example>.alignment//8
这个枚举在创建原始指针分配内存中非常有用。

UnsafeMutableRawPointer.allocate(bytes: MemoryLayout<Example>.stride, alignedTo: MemoryLayout<Example>.alignment)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值