mirror of
https://github.com/golang/go.git
synced 2025-05-30 19:52:53 +00:00
cmd/cgo: clarify the underscore prefix rule and C union representation in Go.
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/10981043
This commit is contained in:
parent
32fef9908a
commit
555e51f27b
@ -49,7 +49,7 @@ to the flags derived from these directives. Package-specific flags should
|
|||||||
be set using the directives, not the environment variables, so that builds
|
be set using the directives, not the environment variables, so that builds
|
||||||
work in unmodified environments.
|
work in unmodified environments.
|
||||||
|
|
||||||
Within the Go file, C identifiers or field names that are keywords in Go
|
Within the Go file, C's struct field names that are keywords in Go
|
||||||
can be accessed by prefixing them with an underscore: if x points at a C
|
can be accessed by prefixing them with an underscore: if x points at a C
|
||||||
struct with a field named "type", x._type accesses the field.
|
struct with a field named "type", x._type accesses the field.
|
||||||
|
|
||||||
@ -63,6 +63,9 @@ The C type void* is represented by Go's unsafe.Pointer.
|
|||||||
To access a struct, union, or enum type directly, prefix it with
|
To access a struct, union, or enum type directly, prefix it with
|
||||||
struct_, union_, or enum_, as in C.struct_stat.
|
struct_, union_, or enum_, as in C.struct_stat.
|
||||||
|
|
||||||
|
As Go doesn't have support for C's union type in the general case,
|
||||||
|
C's union types are represented as a Go byte array with the same length.
|
||||||
|
|
||||||
Go structs cannot embed fields with C types.
|
Go structs cannot embed fields with C types.
|
||||||
|
|
||||||
Any C function (even void functions) may be called in a multiple
|
Any C function (even void functions) may be called in a multiple
|
||||||
|
Loading…
x
Reference in New Issue
Block a user