SA0016: Lücken in Strukturen
Funktion | 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-Elemententfernen. Wenn dies nicht möglich ist, dann können Sie die Regel für die betroffenen Strukturen durch das Attribut {attribute 'analysis' := '...'} deaktivieren. |
Begründung | Durch unterschiedliche Alignment-Anforderungen auf verschiedenen Plattformen, kann es für solche Strukturen zu einem unterschiedlichen Layout im Speicher kommen. Der Code kann sich dann je nach Plattform unterschiedlich verhalten. |
Wichtigkeit | Niedrig |
Beispiele:
TYPE ST_UnpaddedStructure1 :
STRUCT
bBOOL : BOOL;
nINT : INT; // => SA0016
nBYTE : BYTE;
nWORD : WORD;
END_STRUCT
END_TYPETYPE ST_UnpaddedStructure2 :
STRUCT
bBOOL : WORD;
nINT : INT;
nBYTE : BYTE;
nWORD : WORD; // => SA0016
END_STRUCT
END_TYPE