Skip to main content

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 464. 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