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