Skip to main content

Advertencia del compilador C0298

Mensaje: Cálculo del uso de la pila incompleto debido a llamadas recursivas, que comienzan en '<nombre del método recursivo'.

Causa posible: La verificación de la pila no se puede realizar correctamente para métodos con una llamada recursiva porque no se puede determinar el uso de la pila.

Error de corrección: Utilizar el estimated-stack-usage atributo para darle al método un valor estimado (en bytes) para el requisito de tamaño de pila.

ejemplo 464. Ejemplo del error:
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;

Mensaje:

C0298: Cálculo del uso de la pila incompleto debido a llamadas recursivas, comenzando en 'm_Recursive'

Error de corrección:

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


Para más información, ver: estimated-stack-usage