From: Shenghou Ma Date: Sat, 31 May 2014 07:51:46 +0000 (-0700) Subject: cmd/cgo: document the cgo types also follow Go name space rules. X-Git-Tag: go1.3rc1~21 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3f66c0c07b271af796765ce5e9e9c21a86ddb0d7;p=gostls13.git cmd/cgo: document the cgo types also follow Go name space rules. Fixes #7958. LGTM=rsc R=golang-codereviews, rsc, r, gobot CC=golang-codereviews https://golang.org/cl/91520043 --- diff --git a/src/cmd/cgo/doc.go b/src/cmd/cgo/doc.go index 97e4b6af06..69c7ce893c 100644 --- a/src/cmd/cgo/doc.go +++ b/src/cmd/cgo/doc.go @@ -107,6 +107,11 @@ C's union types are represented as a Go byte array with the same length. Go structs cannot embed fields with C types. +Cgo translates C types into equivalent unexported Go types. +Because the translations are unexported, a Go package should not +expose C types in its exported API: a C type used in one Go package +is different from the same C type used in another. + Any C function (even void functions) may be called in a multiple assignment context to retrieve both the return value (if any) and the C errno variable as an error (use _ to skip the result value if the