Skip to main content

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

Esempio 54. Esempio
PROGRAM PLC_PRG
VAR
    pInt : POINTER TO INT;
    byteVar : BYTE;
END_VAR
pInt := ADR(byteVar);

Uscita in Messaggi vista:

  • sa_icon_message.png SA0019: Conversione implicita dal puntatore a 'POINTER TO BYTE' al puntatore a 'POINTER TO INT'