Attribut 'pack_mode'
Dieses Attribut-Pragma legt fest, wie eine Datenstruktur während der Allozierung gepackt wird. Das Attribut muss oberhalb der Datenstruktur eingefügt werden und wirkt sich auf das Packen der gesamten Struktur aus.
Syntax: {attribute 'pack_mode' := '<Value>'}
Beispiel
{attribute 'pack_mode' := '0'}
TYPE str_Test :
STRUCT
byTest1 : BYTE;
iTest : DINT;
byTest2 : BYTE;
nValue : INT;
END_STRUCT
END_TYPE
In diesem Beispiel wurde der Pack-Modus auf 0 gestellt. Wenn Sie die Größe der Struktur im Beispiel mit SIZEOF bestimmen, dann erhalten Sie den Wert 8.
1 Byte + 4 Byte (DINT) + 1 Byte + 2 Byte (INT) = 8 Byte
Wenn Sie den Pack-Modus auf 2 stellen (WordAlignment), erhalten Sie den Wert 10, weil nach jedem Byte noch ein Füllbyte eingefügt wird. Wenn Sie den Pack-Modus auf 4 stellen (DWordAlignment), dann erhalten Sie den Wert 12, weil diesmal nach jedem Byte drei Füllbytes eingefügt werden. Beim einem Pack-Modus von 8 (LWordAlignment) verändert sich nichts, da in dem Beispiel keine Variablen verwendet werden, die 8 Byte benötigen.
Der CX7293 arbeitet mit dem DWordAlignment (Pack-Modus 4), wenn Sie das Attribut nicht verwenden.
Weitere Informationen zum Attribut 'pack_mode' finden Sie unter: Attribut 'pack_mode'