Avviso del compilatore C0298
Messaggio: Calcolo dell'utilizzo dello stack incompleto a causa di chiamate ricorsive, a partire da "<nome metodo ricorsivo".
Causa possibile: Il controllo dello stack non può essere eseguito correttamente per i metodi con una chiamata ricorsiva perché non è possibile determinare l'utilizzo dello stack.
Correzione dell'errore: Usa il estimated-stack-usage per fornire al metodo un valore stimato (in byte) per il requisito della dimensione dello stack.
Esempio 469. Esempio dell'errore:
METHOD PUBLIC m_Recursive : UDINT
VAR_INPUT
uiN : UINT;
END_VAR
VAR
END_VAR
m_Recursive := 1;
IF uiN > 1 THEN
m_Recursive := uiN * THIS^.m_Recursive(uiN := (uiN - 1) );
RETURN;
ELSE
RETURN;
END_IF;Messaggio:
C0298: Calcolo dell'utilizzo dello stack incompleto a causa di chiamate ricorsive, a partire da 'm_Recursive'
Correzione dell'errore:
{attribute 'estimated-stack-usage' := '99'}Per ulteriori informazioni, vedere: estimated-stack-usage