Merge pull request #8518 from akvadrako/doc-field-align

Update doc for struct field alignment.
This commit is contained in:
Frank Denis 2021-04-14 10:56:37 +02:00 committed by GitHub
commit 1fada37466
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2763,9 +2763,24 @@ test "overaligned pointer to packed struct" {
cause the test suite to fail, notifying the bug fixer to update these docs.
</p>
<p>
It's also
<a href="https://github.com/ziglang/zig/issues/1512">planned to be able to set alignment of struct fields</a>.
It's also possible to set alignment of struct fields:
</p>
{#code_begin|test#}
const std = @import("std");
const expectEqual = std.testing.expectEqual;
test "aligned struct fields" {
const S = struct {
a: u32 align(2),
b: u32 align(64),
};
var foo = S{ .a = 1, .b = 2 };
expectEqual(64, @alignOf(S));
expectEqual(*align(2) u32, @TypeOf(&foo.a));
expectEqual(*align(64) u32, @TypeOf(&foo.b));
}
{#code_end#}
<p>
Using packed structs with {#link|volatile#} is problematic, and may be a compile error in the future.
For details on this subscribe to