Ermittelt implizit erzeugte Pointerkonvertierungen.
Begründung: Pointer sind in CODESYS nicht streng getypt und können einander beliebig zugewiesen werden. Dies wird häufig
genutzt und deswegen auch nicht vom Compiler gemeldet.
Allerdings kann es dadurch auch ungewollt zu unerwarteten Zugriffen kommen. Wenn man
einen POINTER TO BYTE
einem POINTER TO DWORD
zuweist, dann kann man über den letzteren Pointer ungewollt Speicher überschreiben.
Lassen Sie diese Regel deshalb in jedem Fall prüfen und unterdrücken Sie die Meldung
für in den Fällen, in denen Sie bewußt anders getypt auf einen Wert zugreifen wollen.
Implizite Datentyp-Konvertierungen werden mit einer anderen Meldung gemeldet.
Wichtigkeit: Hoch
PLCopen-Regel: CP25
Ausnahme: BOOL
<->
BIT
Beispiel
PROGRAM PLC_PRG VAR pINT : POINTER TO INT; byteVar : BYTE; END_VAR pINT := ADR(byteVar); --> SA0019: Implizite Konvertierung von Pointer auf 'POINTER TO BYTE' zu Pointer auf 'POINTER TO INT'