Skip to main content

Compilerwarnung C0298

Meldung: Berechnung des Stackverbrauchs aufgrund rekursiver Aufrufe unvollständig, beginnend bei '<recursive method name'.

Mögliche Ursache: Bei Methoden mit rekursivem Aufruf kann die Stackprüfung nicht erfolgreich durchgeführt werden, da der Stackverbrauch nicht ermittelt werden kann.

Fehlerbehebung: Geben Sie der Methode mithilfe des Attributs estimated-stack-usage einen Schätzwert (in Bytes) für den Stackgrößenbedarf mit.

Beispiel 464. Beispiel für den Fehler:
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;

Meldung:

C0298: Berechnung des Stackverbrauchs aufgrund rekursiver Aufrufe unvollständig, beginnend bei 'm_Recursive'

Fehlerbehebung:

{attribute 'estimated-stack-usage' := '99'}


Für weitere Informationen siehe: estimated-stack-usage