Packing of Struct Fields
Per Nordlöw
per.nordlow at gmail.com
Sat Oct 17 12:51:01 UTC 2020
On Saturday, 17 October 2020 at 12:44:44 UTC, Per Nordlöw wrote:
> Can `align`s be inserted in S or/and T so that T is packed to 8
> bytes but still aligned to 8 bytes? I don't see why this
> shouldn't be the default behaviour...
I though this would do the trick but not...
struct S
{
int i; // 4 bytes
short s; // 2 byte
bool b; // 1 byte
}
static assert(S.sizeof == 8);
static assert(S.alignof == 4);
align(4) struct T
{
align(4) S s;
align(1) char c;
}
static assert(T.alignof == 4);
// TODO: static assert(T.sizeof == 8);
T.sizeof is still 12 bytes, I want it to be 8.
More information about the Digitalmars-d-learn
mailing list