Skip to main content

Avertissement du compilateur C0298

Message: Calcul de l'utilisation de la pile incomplet en raison d'appels récursifs, commençant à '<nom de la méthode récursive'.

Cause possible: La vérification de la pile ne peut pas être effectuée avec succès pour les méthodes avec un appel récursif car l'utilisation de la pile ne peut pas être déterminée.

Correction des erreurs: Utilisez le estimated-stack-usage attribut pour donner à la méthode une valeur estimée (en octets) pour l'exigence de taille de pile.

Exemple 464. Exemple d'erreur :
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;

Message:

C0298 : Calcul de l'utilisation de la pile incomplet en raison d'appels récursifs, commençant à 'm_Recursive'

Correction des erreurs:

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


Pour plus d'informations, voir : estimated-stack-usage