The spec currently states: The zero value for a storable structure type S is the structure value S with zero-valued members.. If I have a struct like the layout example given later:
[[block]] struct B { // align(16) size(160)
a: vec2<f32>; // offset(0) align(8) size(8)
// -- implicit member alignment padding -- // offset(8) size(8)
b: vec3<f32>; // offset(16) align(16) size(12)
c: f32; // offset(28) align(4) size(4)
d: f32; // offset(32) align(4) size(4)
// -- implicit member alignment padding -- // offset(36) size(12)
e: A; // offset(40) align(8) size(24)
f: vec3<f32>; // offset(64) align(16) size(12)
// -- implicit member alignment padding -- // offset(76) size(4)
g: array<A, 3>; // offset(80) align(8) size(72) stride(24)
h: i32; // offset(152) align(4) size(4)
// -- implicit struct size padding -- // offset(156) size(4)
};
Is the 8 bytes of memory after a, 12 bytes after d, 4 bytes after f and 4 bytes after h initialized to zero as well, or are they random memory?
The spec currently states:
The zero value for a storable structure type S is the structure value S with zero-valued members.. If I have a struct like the layout example given later:Is the 8 bytes of memory after
a, 12 bytes afterd, 4 bytes afterfand 4 bytes afterhinitialized to zero as well, or are they random memory?