欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cgo: C的struct转换为go unsafe.Pointer的办法

程序员文章站 2022-06-22 20:01:43
...

cgo: C的struct转换为go unsafe.Pointer的办法

如果go build时报错:
cannot use _cgo5 (type _Ctype_struct__xx) as type unsafe.Pointer in argument.
例如C函数中函数声明是int SetUserData(void * userData), 其中userData为一个struct,
可用这个办法将C的struct转换为go unsafe.Pointer:

var a C.UserData
udata := unsafe.Pointer(&a)
C.SetUserData(udata)
相关标签: golang golang cgo