SA0023: Komplexe Rückgabewerte
Funktion | Ermittelt komplexe Rückgabewerte, die mit einer einfachen Registerkopie des Prozessors nicht zurückgegeben werden können. Dazu gehören Strukturen und Arrays sowie 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. Eine bessere Performance wird erreicht, 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:
Struktur ST_Sample:
TYPE ST_Sample :
STRUCT
n1 : INT;
n2 : BYTE;
END_STRUCT
END_TYPEBeispielfunktionen mit Rückgabewert:
FUNCTION F_MyFunction1 : I_MyInterface // no errorFUNCTION F_MyFunction2 : ST_Sample // => SA0023FUNCTION F_MyFunction3 : ARRAY[0..1] OF BOOL // => SA0023