Skip to main content

SA0061: Operazione insolita sul puntatore

Determina le operazioni sulle variabili di tipo POINTER TOche non lo fanno = (Uguaglianza), <> (Disuguaglianza), + (aggiunta) o ADR sono.

In CODESYS L'aritmetica del puntatore è generalmente consentita e può anche essere utilizzata in modo ragionevole. L'aggiunta di un puntatore con valore intero è quindi classificata come una normale operazione sui puntatori. Ciò consente di elaborare un array con una lunghezza variabile utilizzando un puntatore. Tutte le altre operazioni (insolite) con i puntatori vengono riportate con SA0061.

Importanza: Alta

Regola PLCopen: E2 / E3

Esempio 72. Esempio
PROGRAM PLC_PRG
VAR
    piTemp : POINTER TO INT;
    iTemp : INT;
END_VAR
iTemp := iTemp + INT#1;
piTemp := ADR(iTemp);
piTemp := piTemp * DWORD#5;   // SA0061
piTemp := piTemp / DWORD#2;   // SA0061
piTemp := piTemp MOD DWORD#3; // SA0061
piTemp := piTemp + DWORD#1;
piTemp := piTemp - DWORD#1;   // SA0061

Uscita in Messaggi vista:

  • sa_icon_message.png SA0061: Operazione insolita sul puntatore