我想将泛型约束为可以用C表示的类型.在
Swift标准库中是否存在所有C类型符合的协议或类型?
func doWithCType<T:CRepresentable>(cValue: T) { // do thing with C type }
如果不是CRepresentable,可能是CStruct类型?
线索:
使用此C类型:
typedef struct { int hodor; } Hodor;
我强制将结构转换为不兼容的类型(导致崩溃).这是错误消息:无法将类型’__C.Hodor'(0x1035c0700)的值转换为’Swift.CVarArg'(0x107196240).
我无法在任何地方找到“__C”,但我希望C类型有所区别.
是Swift.CVarArg你需要什么?它适用于可以通过C的va_list机制传递给varargs的类型.
还有CVaListPointer,相当于va_list *.它出现在String(format :)的参数中.
https://developer.apple.com/documentation/swift/cvararg
https://developer.apple.com/documentation/swift/cvalistpointer