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