From: NiGHTS <nights@unku.us>
Subject: Variant record memory storage question
Date: Wed, 1 Aug 2018 10:38:05 -0700 (PDT)
Date: 2018-08-01T10:38:05-07:00 [thread overview]
Message-ID: <6cfb0a23-91d0-4ebe-9291-426280e12913@googlegroups.com> (raw)
Say I had a variant record like this:
type Which_One is (Is_Small, Is_Big);
type Variant_Record (Option : Which_One) is
record
case Option is
when Is_Small =>
Var_1 : Byte -- 1 byte
when Is_Big =>
Var_2 : Some_Large_Record -- 1000 bytes
end case;
end record;
Will the record Variant_Record( Is_Small ) be stored as 1 byte? Or does it act almost like a C union allocating the memory for Variant_Record( Is_Big ) even though it will never morph at run-time?
I am trying to determine the most memory-efficient way to store a complex record and it seems Variant_Record can help me do this, but I am unsure if it will work the way I think it will.
Note I am using gcc. Thank you.
next reply other threads:[~2018-08-01 17:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-01 17:38 NiGHTS [this message]
2018-08-01 18:35 ` Variant record memory storage question Shark8
2018-08-01 18:51 ` NiGHTS
2018-08-01 19:00 ` G.B.
2018-08-01 18:58 ` G.B.
2018-08-01 19:54 ` Niklas Holsti
2018-08-01 22:30 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox