Variant Record Sizes..
From: Ganesh Ramasivan (ganesh.ramasivan_at_gdcanada.com)
Date: 08/19/04
- Next message: Jeffrey Carter: "Re: Bitmanipulation in Ada"
- Previous message: Bernd Specht: "Re: Bitmanipulation in Ada"
- Next in thread: Jeffrey Carter: "Re: Variant Record Sizes.."
- Reply: Jeffrey Carter: "Re: Variant Record Sizes.."
- Reply: Martin Dowie: "Re: Variant Record Sizes.."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 19 Aug 2004 11:48:25 -0700
Hello,
I am having a hard time understanding variant records with regard to
memory usage. Does the size of the record become the size of the
largest element in that record?
So in case of the example below, is the size of the Test_Record 2
bytes, even though the "use 8" clause has been specified as the other
element of the record specifies "use 16".
Any input will be appreciated.
Thanks,
Ganesh
------------------------
with ada.text_io;
procedure Variant is
package int_io is new ada.text_io.integer_io(Integer);
type TEST_STATE_CHOICE is (DISABLE, ENABLE);
for TEST_STATE_CHOICE'SIZE use 8;
type OTHER_STATE_CHOICE is (ON, OFF);
for OTHER_STATE_CHOICE'SIZE use 16;
type TEST_ICP_POI_MESSAGE_ID_CHOICE is (STATE_1, STATE_2);
for TEST_ICP_POI_MESSAGE_ID_CHOICE'SIZE use 8;
type TEST_ICP_POI_MESSAGE_TYPE
(ICP_POI_MESSAGE_ID : TEST_ICP_POI_MESSAGE_ID_CHOICE) is
record
case ICP_POI_MESSAGE_ID is
when STATE_1 =>
ICP_STATE : TEST_STATE_CHOICE;
when STATE_2 =>
PING_STATE : OTHER_STATE_CHOICE;
when others =>
null;
end case;
end record;
pragma pack (TEST_ICP_POI_MESSAGE_TYPE);
Test_Record : TEST_ICP_POI_MESSAGE_TYPE(STATE_1);
Record_Size : INTEGER := 0;
begin
Record_Size := Test_Record'Size/8;
ada.text_io.put("Record Size = ");
int_io.put(Record_Size); ada.text_io.new_line;
end Variant;
--------------------------
- Next message: Jeffrey Carter: "Re: Bitmanipulation in Ada"
- Previous message: Bernd Specht: "Re: Bitmanipulation in Ada"
- Next in thread: Jeffrey Carter: "Re: Variant Record Sizes.."
- Reply: Jeffrey Carter: "Re: Variant Record Sizes.."
- Reply: Martin Dowie: "Re: Variant Record Sizes.."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|