SA0019: Conversioni implicite di puntatori
Recupera le conversioni del puntatore generate in modo implicito.
Giustificazione: In CODESYS, i puntatori non sono digitati in modo rigoroso e possono essere assegnati l'uno all'altro in qualsiasi modo. Questo è spesso usato e quindi non viene segnalato dal compilatore. Tuttavia, può anche portare ad accessi non autorizzati e imprevisti. Ad esempio, se si assegna il tipo POINTER TO DWORD
a un puntatore con il tipo POINTER TO BYTE
, la memoria può essere sovrascritta in modo indesiderato.
Pertanto, controlla sempre questa regola e blocca il messaggio solo nei casi in cui desideri accedere intenzionalmente a un valore con un tipo diverso.
Conversioni da e verso POINTER TO BYTE
i tipi di dati non sono controllati dalla regola SA0019. Sono sempre consentiti
Le conversioni implicite del tipo di dati vengono segnalate con un messaggio diverso.
Importanza: Alta
Regola PLCopen: CP25
Eccezione: BOOL
<-> BIT
PROGRAM PLC_PRG VAR pInt : POINTER TO INT; byteVar : BYTE; END_VAR
pInt := ADR(byteVar);
Uscita in Messaggi vista:
SA0019: Conversione implicita dal puntatore a 'POINTER TO BYTE' al puntatore a 'POINTER TO INT'