SA0125: Referenzvariablen in Initialisierungen
Ermittelt Referenzvariablen, die zur Initialisierung im Deklarationsteil verwendet werden.
Begründung: Pointer und Referenzen sollten nicht für Initialisierungen verwendet werden, weil es dadurch zu Zugriffsverletzungen kommen kann, wenn der Pointer nicht initialisiert worden ist.
Wichtigkeit: Mittel
Beispiel 112. Beispiel
TYPE TESTSTRUCT : STRUCT xA : BOOL; xB : BOOL; END_STRUCT END_TYPE
FUNCTION_BLOCK FB_Test VAR_INPUT refTeststruct: REFERENCE TO TESTSTRUCT; END_VAR VAR xA : BOOL := refTeststruct.xA; //SA0125 END_VAR
xA := TRUE;
PROGRAM PLC_PRG VAR fbTest : FB_Test; END_VAR
fbTest();
Ausgabe unter Ansicht Meldungen:
SA0125: Referenzierung in Initialisierung