SA0064: Aggiunta di un puntatorePermalink

Rileva l'aggiunta di puntatori

Giustificazione: In CODESYS, l'aritmetica dei puntatori è generalmente consentita e può essere utilizzata in modo appropriato. Tuttavia, è anche una fonte di errori. Pertanto, esistono regole di programmazione che generalmente vietano l'aritmetica dei puntatori. Questo test può verificare tale requisito.

Importanza: Medio

Esempio

PROGRAM PLC_PRG
VAR
	iTest:INT;
	ariTest:ARRAY[0..10] OF INT;
	{attribute 'analysis':='-111'}
	piTest:POINTER TO INT;
	i:INT;
END_VAR

piTest := ADR(ariTest[0]);            // OK
piTest^:= 0;
piTest := ADR(ariTest) + SIZEOF(INT); // SA0064
piTest^:= 1;
piTest := ADR(ariTest) + 6;           // SA0064
piTest^:= 3;
piTest := ADR(ariTest[10]);
FOR i:=0 TO 10 DO
	piTest^ := i;
	piTest := piTest + 2;                // SA0064 	
END_FOR

--> SA0064: Addition of pointer