mirror of https://github.com/golang/go.git
unsafe: document use of &^ to round/align pointers
Follow-up to CL 27156 Change-Id: I4f1cfced2dced9c9fc8a05bbc00ec4229e85c5c9 Reviewed-on: https://go-review.googlesource.com/27314 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
a7277e5494
commit
29df4c8f00
|
|
@ -76,8 +76,10 @@ type ArbitraryType int
|
|||
// // equivalent to e := unsafe.Pointer(&x[i])
|
||||
// e := unsafe.Pointer(uintptr(unsafe.Pointer(&x[0])) + i*unsafe.Sizeof(x[0]))
|
||||
//
|
||||
// It is valid both to add and to subtract offsets from a pointer in this way,
|
||||
// but the result must continue to point into the original allocated object.
|
||||
// It is valid both to add and to subtract offsets from a pointer in this way.
|
||||
// It is also valid to use &^ to round pointers, usually for alignment.
|
||||
// In all cases, the result must continue to point into the original allocated object.
|
||||
//
|
||||
// Unlike in C, it is not valid to advance a pointer just beyond the end of
|
||||
// its original allocation:
|
||||
//
|
||||
|
|
|
|||
Loading…
Reference in New Issue