Skip to main content

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

Beispiel 56. Beispiel
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:

  • sa_icon_message.png SA0133: Explizite einschränkende Konvertierungen von Typ 'LINT' zu Typ 'SINT'

  • sa_icon_message.png SA0133: Explizite einschränkende Konvertierungen von Typ 'DINT' zu Typ 'BYTE'

  • sa_icon_message.png SA0133: Explizite einschränkende Konvertierungen von Typ 'DWORD' zu Typ 'SINT'

  • sa_icon_message.png SA0133: Explizite einschränkende Konvertierungen von Typ 'LREAL' zu Typ 'UINT'

  • sa_icon_message.png SA0133: Explizite einschränkende Konvertierungen von Typ 'LWORD' zu Typ 'REAL'