是否可以编写 C 函数来修改 Go 代码中定义的类型结构?

这是这个问题的后续。我在那里做了一个可能不正确的假设,这就是我明确询问它的原因。因为我忘了问这是否真的可能,所以我已经提交了问题 #8114。


使用 cgo,可以让 Go 代码对 C 类型进行操作,如下所示:


package foo


//#include <sys/stat.h>

import "C"


func fileSizeFromStat(stat *C.struct_stat) int64 {

    return int64(stat.st_size)

}

反过来可能吗?即编写对 go 类型进行操作的 C 函数?上面链接的问题概述了这一点的具体要点;我想编组无法从 Go 代码访问的 C 结构,要么是因为它们使用联合或位域,要么是因为它们的对齐方式使它们与 Go 代码不兼容。


泛舟湖上清波郎朗
浏览 160回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go