SA0023: Valori di ritorno complessiPermalink

Determina valori di ritorno complessi che non possono essere restituiti con una semplice copia del registro del processore. Questo include strutture, array e valori di ritorno di tipo ‎STRING‎ (indipendentemente dalla dimensione della memoria utilizzata).

Giustificazione: Si tratta di un avviso di prestazione. Se vengono restituiti valori grandi come risultato di una funzione, di un metodo o di una proprietà, il processore li copia più volte durante l'esecuzione del codice. Questo può portare a problemi di runtime e dovrebbe essere evitato quando possibile. Le prestazioni possono essere migliorate passando un valore strutturato come ‎VAR_IN_OUT‎ a una funzione o a un metodo e riempiendolo nella funzione o nel metodo.

Importanza: Medio

Esempio

TYPE LargeStructure :
STRUCT
	a : LINT;
	b : BOOL;
END_STRUCT
END_TYPE

FUNCTION Large_Return_Value_FUNC : LargeStructure   // SA0023

--> SA0023: Complex return values