SA0028: Sovrapposizione di aree di memoriaPermalink

Rileva le righe di codice in cui due o più variabili riservano la stessa memoria.

Giustificazione: Quando due variabili riservano la stessa memoria, il codice può comportarsi con risultati inaspettati. Questa situazione deve essere evitata a tutti i costi. Se non si può evitare di usare un valore in diverse interpretazioni (ad esempio, una volta come ‎DINT‎ e un'altra come ‎REAL‎), allora si deve definire un ‎UNION‎. È inoltre possibile utilizzare un puntatore per accedere a un valore di tipo diverso senza che il valore venga convertito.

Importanza: Alto

Esempio

PROGRAM PLC_PRG
VAR
iVvar1 AT %QB21: INT;
dwVar2 AT %QD5: DWORD;
END_VAR

--> The following variables access the same memory:
--> SA0028: iVar1 AT %QB21
--> SA0028: dwVar2 AT %QD5