authorgravatar for cnx@loang.netNguyễn Gia Phong <cnx@loang.net> 2024-04-08 12:01:30+09:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-04-11 14:45:28-07:00
log5b9579845dcc47de74dee2e2f17914ba20b15bec
tree8021ce24e33def46038ee650d73a712594ee1c2b
parent271d8964468529a1c67b3b1c6a4dd69693e98500

Document packed struct's backing int declaration


1 files changed, 10 insertions(+), 0 deletions(-)

doc/langref.html.in+10
...@@ -3320,6 +3320,16 @@ fn doTheTest() !void {...@@ -3320,6 +3320,16 @@ fn doTheTest() !void {
3320 try expect(ordered[1] == 0x12);3320 try expect(ordered[1] == 0x12);
3321 },3321 },
3322 }3322 }
3323}
3324 {#code_end#}
3325 <p>
3326 The backing integer is inferred from the fields' total bit width.
3327 Optionally, it can be explicitly provided and enforced at compile time:
3328 </p>
3329 {#code_begin|test_err|test_missized_packed_struct|backing integer type 'u32' has bit size 32 but the struct fields have a total bit size of 24#}
3330test "missized packed struct" {
3331 const S = packed struct(u32) { a: u16, b: u8 };
3332 _ = S{ .a = 4, .b = 2 };
3323}3333}
3324 {#code_end#}3334 {#code_end#}
3325 <p>3335 <p>