SA0016: Lacune nelle strutturePermalink

Rileva le lacune nelle strutture o nei blocchi funzionali causate dai requisiti di allineamento del sistema di destinazione attualmente impostato. Se possibile, è necessario eliminare le lacune ricorrendo agli elementi della struttura o riempiendole con un elemento fittizio. Se ciò non è possibile, è possibile disattivare la regola per le strutture interessate tramite il pragma ‎analysis‎.

Giustificazione: A causa dei diversi requisiti di allineamento sulle varie piattaforme, è possibile che la memoria presenti una disposizione diversa per questo tipo di strutture. Quindi il codice può funzionare in modo diverso, a seconda della piattaforma.

Importanza: Basso

Esempio

PROGRAM PLC_PRG
VAR
	myStruct : Unpadded_Structure;
END_VAR
myStruct.iTest := 0;

TYPE Unpadded_Structure :
STRUCT
	xTest : BOOL;
	iTest : INT;    // SA0016
	byTest : BYTE;
	wTest : WORD;
END_STRUCT
END_TYPE

--> SA0016: Structure 'Unpadded_Structure' must be padded (pack-mode=8)