Commit f49a757a authored by Ian Lance Taylor's avatar Ian Lance Taylor

unsafe: clarify that Alignof returns required alignment

Also document the special behavior of Alignof(s.f), and mention the
correspondence between Alignof and reflect.Type.{Align,FieldAlign}.

Change-Id: I6f81047a04c86887f1b1164473225616cae45a26
Reviewed-on: https://go-review.googlesource.com/18949
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: default avatarRuss Cox <rsc@golang.org>
parent 867bef93
...@@ -183,7 +183,12 @@ func Sizeof(x ArbitraryType) uintptr ...@@ -183,7 +183,12 @@ func Sizeof(x ArbitraryType) uintptr
// number of bytes between the start of the struct and the start of the field. // number of bytes between the start of the struct and the start of the field.
func Offsetof(x ArbitraryType) uintptr func Offsetof(x ArbitraryType) uintptr
// Alignof takes an expression x of any type and returns the alignment // Alignof takes an expression x of any type and returns the required alignment
// of a hypothetical variable v as if v was declared via var v = x. // of a hypothetical variable v as if v was declared via var v = x.
// It is the largest value m such that the address of v is zero mod m. // It is the largest value m such that the address of v is always zero mod m.
// It is the same as the value returned by reflect.TypeOf(x).Align().
// As a special case, if s has a struct type and f is a field within that
// struct, then Alignof(s.f) will return the required alignment of a field
// of that type within a struct. This case is the same as the value returned
// by reflect.TypeOf(s.f).FieldAlign().
func Alignof(x ArbitraryType) uintptr func Alignof(x ArbitraryType) uintptr
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment