Skip to main content

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

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

  • sa_icon_message.png SA0016: La struttura 'Unpadded_Structure' deve essere riempita (pack-mode=8)