union.sizeof
bauss via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Mar 25 18:18:40 PDT 2017
On Saturday, 25 March 2017 at 23:36:07 UTC, kinke wrote:
> On Saturday, 25 March 2017 at 22:45:22 UTC, ketmar wrote:
>> zabruk70 wrote:
>>
>>> [...]
>>
>> `align(1) union Union1` will do the trick.
>>
>> what you did is members packing. but the union itself is
>> padded to integer size too. i.e. internal `align` will set
>> aligning for *members*, and external `align` will change
>> padding of the whole thing.
>
> The union should have an implicit alignment of 1 already
> though, right? It's defined as the maximum of all member
> alignments, and both the bytes5 array and the anonymous struct
> members have an explicit alignment of 1. The alignment of the
> anonymous struct's int1 member (explicitly 1 too) shouldn't
> even matter.
Why should it have an implicit alignment of 1? The alignment
completely depends on the definition unless specified AFAIK.
More information about the Digitalmars-d-learn
mailing list