From ca3aa02206edef4481c6f24506bfbd3b4f18fe58 Mon Sep 17 00:00:00 2001
From: Devin Bayer
- It's also - planned to be able to set alignment of struct fields. + It's also possible to set alignment of struct fields:
+ {#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#}Using packed structs with {#link|volatile#} is problematic, and may be a compile error in the future. For details on this subscribe to -- cgit v1.2.3