Fleksibel variabel aksess via strukturtypen UNION.

Ved behov for å aksessere en variabel via flere datatyper kan strukturtypen UNION være nyttig. I motsetning til strukturtypen STRUCT, der hvert strukturmedlem okkuperer sin egen/separate minneplass, okkuperer UNION medlemmene samme/felles minneplass. I eksempelet nedenfor okkuperer altså UNION strukturen totalt 4 byte, ettersom den største strukturmedlemmen er 4 byte stor:

-----------------------------------------------------------------

typ unMixType :

UNION

{

dwVar: DWORD;

rVar: REAL;

awVar: ARRAY[1..2] OF WORD;

abVar: ARRAY[1..4] OF BYTE;

}

END_UNION

END_TYPE

-----------------------------------------------------------------

VAR

unDatapoint: unMixType;

wTmpVar: WORD;

rDatapoint: REAL;

dwMobusDatapoint: DWORD;

END_VAR

-----------------------------------------------------------------

(* Eksempel på omorganisering av byte plasseringen i en UNION instans *)

unDatapoint.dwVar := dwMobusDatapoint;

wTmpVar := unDatapoint.awVar[1];

unDatapoint.awVar[1] := unDatapoint.awVar[2];

unDatapoint.awVar[2] := wTmpVar;

rDatapoint := unDatapoint.rVar;

-----------------------------------------------------------------


#datatype #struct #union


74 visninger0 kommentarer

Siste innlegg

Se alle