在 UnsafePointer<DSPSplitComplex> 写入值
Writing to value at UnsafePointer<DSPSplitComplex>
据我了解,UnsafePointer 将指针呈现为不可变,而 UnsafeMutablePointer 将指针呈现为可变。但是vDSP函数vDSP_zrvmul的签名如下:
func vDSP_zrvmul(_ __A: UnsafePointer<DSPSplitComplex>,
_ __IA: vDSP_Stride,
_ __B: UnsafePointer<Float>,
_ __IB: vDSP_Stride,
_ __C: UnsafePointer<DSPSplitComplex>,
_ __IC: vDSP_Stride,
_ __N: vDSP_Length)
__C
应该是输出向量,但它不是可变的……我错过了什么?感谢阅读。
__A
和__C
是指向
DSPSplitComplex
:
public struct DSPSplitComplex {
public var realp: UnsafeMutablePointer<Float>
public var imagp: UnsafeMutablePointer<Float>
}
其中包含 可变 指向浮点值数组的指针。
vDSP_zrvmul
将输出写入 __C.realp
指向的数组
和 __C.imagp
,但 __C
本身没有突变。
据我了解,UnsafePointer 将指针呈现为不可变,而 UnsafeMutablePointer 将指针呈现为可变。但是vDSP函数vDSP_zrvmul的签名如下:
func vDSP_zrvmul(_ __A: UnsafePointer<DSPSplitComplex>,
_ __IA: vDSP_Stride,
_ __B: UnsafePointer<Float>,
_ __IB: vDSP_Stride,
_ __C: UnsafePointer<DSPSplitComplex>,
_ __IC: vDSP_Stride,
_ __N: vDSP_Length)
__C
应该是输出向量,但它不是可变的……我错过了什么?感谢阅读。
__A
和__C
是指向
DSPSplitComplex
:
public struct DSPSplitComplex {
public var realp: UnsafeMutablePointer<Float>
public var imagp: UnsafeMutablePointer<Float>
}
其中包含 可变 指向浮点值数组的指针。
vDSP_zrvmul
将输出写入 __C.realp
指向的数组
和 __C.imagp
,但 __C
本身没有突变。