Ermittelt komplexe Rückgabewerte, die mit einer einfachen Registerkopie des Prozessors
nicht zurückgegeben werden können. Dazu gehören Strukturen, Arrays und Rückgabewerte
vom Typ STRING
(unabhängig von der Größe des belegten Speicherplatzes).
Begründung:
Dies ist eine Performance-Warnung. Wenn große Werte als Ergebnis einer Funktion, Methode
oder einer Eigenschaft zurückgeliefert werden, dann werden diese vom Prozessor bei
der Ausführung des Codes mehrfach umkopiert.
Das kann zu Laufzeitproblemen führen und sollte wenn möglich vermieden werden. Bessere
Performance erreicht man, wenn ein strukturierter Wert als VAR_IN_OUT
an eine Funktion oder Methode übergeben wird und in der Funktion oder Methode gefüllt
wird.
Wichtigkeit: Mittel
Beispiel
TYPE LargeStructure : STRUCT a : LINT; b : BOOL; END_STRUCT END_TYPE FUNCTION Large_Return_Value_FUNC : LargeStructure // SA0023 --> SA0023: Komplexe Rückgabewerte