사이 C.int을 공유 할 수 있습니다 내가이 다음 fastergo 패키지 golang : i는 기본 패키지에 패키지
var foo C.int
foo = 3
t := fastergo.Ctuner_new()
fastergo.Ctuner_register_parameter(t, &foo, 0, 100, 1)
내가 가진 :
func Ctuner_register_parameter(tuner unsafe.Pointer, parameter *C.int, from C.int, to C.int, step C.int) C.int {
...
}
내가 그것을 실행하려고하면, 내가 얻을 :
demo.go:14[/tmp/go-build742221968/command-line-arguments/_obj/demo.cgo1.go:21]: cannot use &foo (type *_Ctype_int) as type *fastergo._Ctype_int in function argument
난 아니에요 날 여기를 말하려고하지만, 어떻게 든 내가 그것을 모든 C.int이 동일 아니라는 것을 말해 싶은 생각되어 가서 정말로 있는지? 왜 그런가요? 어떻게 해결할 수 있습니까/해결할 수 있습니까?
두 가지 유형이 어떻게 든 다르게 보일 수 있습니다 (_Ctype_int 및 fastergo._Ctype_int). 나는 자아 어떻게 작동하는지 정확히 모르겠다. 그러나 C.int는 어디서 오는가? 가져온 패키지에서 가져온 것입니까? –
@Laurent "C"는 C 코드를 사용하는 가상 패키지입니다. 읽기 : http://golang.org/doc/articles/c_go_cgo.html 기본적으로 정확히 동일한 유형 (C 언어 정수)을 두 번 언급하고 있으며 Go가이를 동일한 것으로 간주하지 않습니다. – mnagel
'fastgo' 패키지에'_Ctype_int'를 정의한 다음, 지속적으로'fastergo._Ctype_int'라고합니다. 그들은 현재 다른 범위에 있습니다. – Intermernet