这是这个问题的后续行动.我在那里假设可能不是真的,这就是我明确询问它的原因.因为我忘了询问这是否真的可行,所以我已经提交了#8114号问题.
使用cgo,Go代码可以在C类型上运行,如下所示:
package foo
//#include <sys/stat.h>
import "C"
func fileSizeFromStat(stat *C.struct_stat) int64 {
return int64(stat.st_size)
}
Run Code Online (Sandbox Code Playgroud)
反过来可能吗?即编写在go类型上运行的C函数?上述问题概述了具体内容; 我想编组无法从Go代码访问的C结构,因为它们使用了联合或位域,或者因为它们的对齐使它们与Go代码不兼容.
据我所知,不,你不能。
但是你可以使用像https://github.com/OneOfOne/go-nfqueue/blob/master/nfqueue.go#L130这样丑陋的东西,你可以导出一个需要大量指针的 Go 函数并在 go 中构造你的 Go 结构。
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |