SA0019: Conversioni implicite dei puntatoriPermalink

Rileva le conversioni di puntatori generate implicitamente

Giustificazione: In CODESYS, i puntatori non sono strettamente tipizzati e possono essere assegnati l'uno all'altro in qualsiasi modo. Questo è spesso usato e quindi non viene segnalato dal compilatore. Tuttavia, può anche causare accidentalmente un accesso inatteso. Se si assegna un ‎POINTER TO BYTE‎ a un ‎POINTER TO DWORD‎, è possibile sovrascrivere involontariamente la memoria utilizzando quest'ultimo puntatore. Pertanto, controllare sempre questa regola e bloccare il messaggio nei casi in cui si voglia intenzionalmente accedere a un valore di tipo diverso.

Le conversioni implicite dei tipi di dati vengono segnalate con un messaggio diverso.

Importanza: Alto

Regola PLCopen: CP25

Eccezione: ‎BOOL‎ <-> ‎BIT‎

Esempio

PROGRAM PLC_PRG
VAR
	pINT : POINTER TO INT;
	byteVar : BYTE;
END_VAR

pINT := ADR(byteVar);

--> SA0019: Implicit conversion from pointer to 'POINTER TO BYTE' to pointer to 'POINTER TO INT'