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)