SA0016: Lacune nelle strutture
Determina le lacune nelle strutture o nei blocchi funzione causati dai requisiti di allineamento del sistema target attualmente impostato. Se possibile, dovresti rimuovere gli spazi vuoti riorganizzando gli elementi della struttura o riempiendoli con un elemento fittizio. Se ciò non è possibile, è possibile utilizzare la regola per le strutture interessate attraverso il pragma analysis disattivare.
Motivo: a causa dei diversi requisiti di allineamento su piattaforme diverse, può esserci un layout diverso in memoria per tali strutture. Il codice può quindi comportarsi in modo diverso a seconda della piattaforma.
Importanza: Bassa
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;
Uscita in Messaggi vista:
SA0016: La struttura 'Unpadded_Structure' deve essere riempita (pack-mode=8)