Это продолжение этого вопроса а>. Я сделал там предположение, которое может быть неверным, поэтому я прямо спрашиваю об этом. Поскольку я забыл спросить, возможно ли это на самом деле, я уже подал проблему. #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? Конкретный момент этого изложен в вопросе, указанном выше; Я хочу сортировать структуры C, к которым нельзя получить доступ из кода Go, либо потому, что они используют объединения или битовые поля, либо потому, что их выравнивание делает их несовместимыми с кодом Go.