SA0133: Explizite einschränkende Konvertierungen
Ermittelt explizit durchgeführte Konvertierungen von einem größeren auf einen kleineren Datentyp.
Begründung: Eine große Zahl von Typkonvertierungen kann bedeuten, dass man falsche Datentypen für Variablen gewählt hat. Es gibt daher Programmierrichtlinien, die eine explizite Begründung für Datentypkonvertierungen fordern.
Wichtigkeit: Niedrig
PROGRAM SA0133
VAR
siVar:SINT;
diVar:DINT;
liVar:LINT;
byVar:BYTE;
uiVar:UINT;
dwVar:DWORD;
lwVar:LWORD;
rVar:REAL;
lrVar:LREAL;
END_VAR
siVar := LINT_TO_SINT(liVar); // SA0133 byVar := DINT_TO_BYTE(diVar); // SA0133 siVar := DWORD_TO_SINT(dwVar); // SA0133 uiVar := LREAL_TO_UINT(lrVar); // SA0133 rVar := LWORD_TO_REAL(lwVar); // SA0133
Ausgabe unter Ansicht Meldungen:
SA0133: Explizite einschränkende Konvertierungen von Typ 'LINT' zu Typ 'SINT'
SA0133: Explizite einschränkende Konvertierungen von Typ 'DINT' zu Typ 'BYTE'
SA0133: Explizite einschränkende Konvertierungen von Typ 'DWORD' zu Typ 'SINT'
SA0133: Explizite einschränkende Konvertierungen von Typ 'LREAL' zu Typ 'UINT'
SA0133: Explizite einschränkende Konvertierungen von Typ 'LWORD' zu Typ 'REAL'