Skip to content

Commit

Permalink
Merge pull request #1260 from joshlf/patch-2
Browse files Browse the repository at this point in the history
Clarify that 0 is a valid multiple of a type's alignment
  • Loading branch information
ehuss authored Sep 10, 2022
2 parents 9f844c6 + 33cc59a commit 18d13e7
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/type-layout.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ The alignment of a value can be checked with the [`align_of_val`] function.

The *size* of a value is the offset in bytes between successive elements in an
array with that item type including alignment padding. The size of a value is
always a multiple of its alignment. The size of a value can be checked with the
[`size_of_val`] function.
always a multiple of its alignment. Note that some types are zero-sized; 0 is
considered a multiple of any alignment (for example, on some platforms, the type
`[u16; 0]` has size 0 and alignment 2). The size of a value can be checked with
the [`size_of_val`] function.

Types where all values have the same size and alignment, and both are known at
compile time, implement the [`Sized`] trait and can be checked with the
Expand Down

0 comments on commit 18d13e7

Please sign in to comment.