SA0061: Unübliche Operation auf Pointer
Funktion | Ermittelt Operationen auf Variablen vom Typ POINTER TO, die nicht = (Gleichheit), <> (Ungleichheit), + (Addition) oder ADR sind. |
Begründung | In TwinCAT ist Pointer-Arithmetik grundsätzlich erlaubt und kann auch sinnvoll eingesetzt werden. Als übliche Operation auf Pointer wird daher die Addition eines Pointers mit einem Integerwert eingestuft. Damit ist es möglich, mit Hilfe eines Pointers ein Array mit variabler Länge zu bearbeiten. Alle anderen (unüblichen) Operationen mit Pointer werden mit SA0061 gemeldet. |
Wichtigkeit | Hoch |
PLCopen-Regel | E2/E3 |
Beispiele:
PROGRAM MAIN
VAR
pINT : POINTER TO INT;
nVar : INT;
END_VARpINT := ADR(nVar); // no error
pINT := pINT * DWORD#5; // => SA0061
pINT := pINT / DWORD#2; // => SA0061
pINT := pINT MOD DWORD#3; // => SA0061
pINT := pINT + DWORD#1; // no error
pINT := pINT - DWORD#1; // => SA0061