Skip to main content

编译器警告 C0298

信息:由于从“<递归方法名称>”开始的递归调用,堆栈使用量的计算不完整。

可能的原因:对于具有递归调用的方法,无法成功执行堆栈检查,因为无法确定堆栈的使用情况。

纠错: 使用 estimated-stack-usage 属性为方法提供堆栈大小要求的估计值(以字节为单位)。

464. 错误示例:
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;

信息:

C0298:由于从‘m_Recursive’开始的递归调用,堆栈使用量的计算不完整

纠错:

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


有关详细信息,请参阅:For more information, see: estimated-stack-usage