Compilerwarnung C0269
Meldung: Die Instanz, auf die <pointer dereferencing> zeigt, wird für virtuelle Funktionsaufrufe reinitialisiert. Stellen Sie sicher, dass <pointer dereferencing> nicht auf einen Typ zeigt, der von <base FB> abgeleitet ist.
Mögliche Fehlerursache: Es wird die Adresse eines abgeleiteten Bausteins als Adresse des Basisbausteins verwendet.
Beispiel für die Warnung
FUNCTION_BLOCK FBBase
...
FUNCTION_BLOCK FBDerived EXTENDS FBBase
...
FUNCTION_BLOCK FB EXTENDS Base_FB
...
PROGRAM PLC_PRG
VAR
pinst : POINTER TO FBBase;
inst2_2 : FBDerived;
END_VAR
pinst := ADR(inst2_2);
pinst^ := inst2_2;Die Pointer-Dereferenzierung produziert die folgende Warnung.
Meldung:
C0269: Die Instanz, auf die pinst^ zeigt, wird für virtuelle Funktionsaufrufe reinitialisiert. Stellen Sie sicher, dass pinst^ nicht auf einen Typ zeigt, der von FBBase abgeleitet ist.