import "C"
func f() {
var vGo int
var vC C.int
// fails to compile with error
// cannot use &vGo (type *int) as type *C.int in argument to...
C.c_function(&vGo)
// compiles just fine:
C.c_function(&vC)
}
私はCGO_ENABLED = 1 GOARCH =アームを使用してコンパイル...intとC.intの違いは何ですか?
この場合はint型で異なるとC.int種類は何ですか?
GOのCタイプに関する追加情報はどこにありますか?
申し訳ありませんが、2番目の部分が正しくありません。 Goのintはアーキテクチャに応じて64ビットまたは32ビットのいずれかになります。 https://golang.org/ref/spec#Numeric_types – jupp0r
@ jupp0rはい、私の言語はおそらく十分ではありませんでしたが、私はあなたが64ビットであればそれを伝えようとしていました。 – evanmcdonnal
関連する違いは、32ビットまたは64ビットではなく、異なるタイプであり、Goは暗黙の数値型変換を許可しないということです。タイプが同じサイズかどうかにかかわらず、同じエラーが発生します。 – JimB