golang cgo将[]byte形式的缓冲区传递给C函数void*参数的办法
golang通过cgo调用C函数时, 常常会遇到从一个无类型buffer(缓冲区)读取数据进行处理的C函数.如果用golang 的bufB := make([]byte, BUFFER_SIZE)创建一个缓冲区, 那么可用unsafe.Pointer(&bufB[0])的方式转换后传递给C函数.示例代码如下:bufByte := make([]byte, BUFFER_SIZE)buffer := unsafe.Pointer(&bufB[0])C.Func(buffer)实例
原创
2021-02-16 12:37:46 ·
3050 阅读 ·
1 评论