Skip to main content

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

Beispiel 29. Beispiel
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:

  • sa_icon_message.png SA0016: Struktur 'Unpadded_Structure' muss aufgefüllt werden (Pack Modus=8)