Per creare strutture in un progetto come oggetti DUT (Data Type Unit) utilizzare la finestra di dialogo Aggiungi oggetto.
Queste strutture iniziano con le parole chiave TYPE e STRUCT e terminano con END_STRUCT e END_TYPE.
TYPE <structurename>:
STRUCT
<declaration of variables 1>
...
<declaration of variables n>
END_STRUCT
END_TYPE
<structurename> è un tipo riconosciuto nel progetto e può essere utilizzato come tipo di dati standard.
Sono consentite strutture annidate. L'unica restrizione è l'impossibilità di assegnare variabili agli indirizzi (la dichiarazione AT non è consentita).
Esempio di definizione di struttura chiamata Polygonline:
TYPE Polygonline:
STRUCT
Start:ARRAY [1..2] OF INT;
Point1:ARRAY [1..2] OF INT;
Point2:ARRAY [1..2] OF INT;
Point3:ARRAY [1..2] OF INT;
Point4:ARRAY [1..2] OF INT;
End:ARRAY [1..2] OF INT;
END_STRUCT
END_TYPE
Inizializzazione delle strutture
Esempio:
Poly_1:polygonline := ( Start:=[3,3], Point1:=[5,2], Point2:=[7,3], Point3:=[8,5], Point4:=[5,7], End:= [3,5]);
Non è possibile eseguire l'inizializzazione con le variabili. Per un esempio di inizializzazione di un array di una struttura, vedere Array.
Accesso ai componenti di una struttura
È possibile accedere ai componenti di una struttura mediante la seguente sintassi:
<structurename>.<componentname>
Per l'esempio precedente della struttura Polygonline, è possibile accedere al componente Start con Poly_1.Start.
Il tipo di dati BIT è un tipo di dati speciali che può essere definito soltanto nelle strutture. Occupa uno spazio di memoria di 1 bit e consente di indirizzare singoli bit di indirizzo di una struttura mediante il nome.
TYPE <structurename>:
STRUCT
<bitname bit1> : BIT;
<bitname bit2> : BIT;
<bitname bit3> : BIT;
...
<bitname bitn> : BIT;
END_STRUCT
END_TYPE
È possibile accedere al componente della struttura BIT con la seguente sintassi:
<structurename>.<bitname>
NOTA: Non è possibile utilizzare riferimenti e puntatore sulle variabili BIT. Inoltre, le variabili BIT non sono ammesse negli array.
Per gli operatori EQ, è possibile confrontare operandi di tipo STRUCT (struttura) se il sistema di destinazione supporta tipi di dati strutturati.