SA0024: Nicht typisierte Literale

Funktion

Ermittelt nicht typisierte Literale, die Teil einer Operation sind.

Begründung

Nicht typisierte Literale werden je nach ihrer Verwendung automatisch typisiert. In einigen Fällen wie beispielsweise nDWORD := ROL(DWORD#1, i); kann dies zu unerwarteten Situationen führen, in denen es besser ist, eine eindeutige Klärung durch Verwendung eines typisierten Literals zu erreichen.

Wichtigkeit

Niedrig

Beispiel:

PROGRAM MAIN
VAR
    nINT    : INT := 10;         // no error as no part of operation
    nDINT   : DINT;
    nLINT   : LINT;
    fREAL   : REAL;
    fLREAL  : LREAL;
END_VAR
nINT   := nINT + 34;             // => SA0024
nINT   := nINT + INT#34;         // no error
 
nDINT  := nDINT + 23;            // => SA0024
nDINT  := nDINT + DINT#23;       // no error
 
nLINT  := nLINT + 124;           // => SA0024
fREAL  := fREAL + 1.1;           // => SA0024
fLREAL := fLREAL + 3.4;          // => SA0024