Это продолжение этого вопроса. Я сделал предположение, что это может быть неверно, поэтому я прямо спрашиваю об этом. Поскольку я забыл спросить, действительно ли это возможно, я уже зарегистрировал issue # 8114 об этом.
С помощью cgo возможно, что код Go работает на типах C, например:
package foo
//#include <sys/stat.h>
import "C"
func fileSizeFromStat(stat *C.struct_stat) int64 {
return int64(stat.st_size)
}
Возможно ли обратное? То есть записывать функции C, которые работают с типами go? Конкретная точка этого изложена в связанном выше вопросе; Я хочу, чтобы marshall C-структуры, к которым невозможно получить доступ из кода Go, либо потому, что они используют союзы или битовые поля, либо потому, что их выравнивание делает их несовместимыми с кодом Go.