SA0016: Lücken in Strukturen
Ermittelt Lücken in Strukturen oder Funktionsbausteinen, verursacht durch die Alignment-Anforderungen des aktuell eingestellten Zielsystems. Wenn möglich, sollten Sie die Lücken durch Umsortieren der Strukturelemente oder durch Auffüllen mit einem Dummy-Element entfernen. Wenn dies nicht möglich ist, dann können Sie die Regel für die betroffenen Strukturen durch das Pragma analysis deaktivieren.
Begründung: durch unterschiedliche Alignment-Anforderungen auf verschiedenen Plattformen, kann es zu einem unterschiedlichen Layout im Speicher kommen für solche Strukturen. Der Code kann sich dann unterschiedlich verhalten, je nach Plattform.
Wichtigkeit: Niedrig
TYPE Unpadded_Structure :
STRUCT
xTest : BOOL;
iTest : INT; // SA0016
byTest : BYTE;
wTest : WORD;
END_STRUCT
END_TYPE
PROGRAM PLC_PRG
VAR
myStruct : Unpadded_Structure;
END_VAR
myStruct.iTest := 0;
Ausgabe unter Ansicht Meldungen:
SA0016: Struktur 'Unpadded_Structure' muss aufgefüllt werden (Pack Modus=8)