type-layout.md: Warn about repr(align)/repr(packed) and field order

This commit is contained in:
Joshua Liebow-Feeser 2023-11-21 16:49:01 -08:00 committed by GitHub
parent 75d2d5d3d4
commit a28f858b55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 0 deletions

View File

@ -524,6 +524,10 @@ assert_eq!(std::mem::size_of::<Enum16>(), 4);
The `align` and `packed` modifiers can be used to respectively raise or lower
the alignment of `struct`s and `union`s. `packed` may also alter the padding
between fields (although it will not alter the padding inside of any field).
On their own, `align` and `packed` do not provide guarantees about the order
of fields in the layout of a struct or the layout of an enum variant, although
they may be combined with representations (such as `C`) which do provide such
guarantees.
The alignment is specified as an integer parameter in the form of
`#[repr(align(x))]` or `#[repr(packed(x))]`. The alignment value must be a