据我所知,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
本身并没有突变。关于swift - 在UnsafePointer <DSPSplitComplex>处写入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48328260/