Генерация кода для вложенных функций

Можно сгенерировать код для MATLAB® функций, которые содержат вложенные функции. Для примера можно сгенерировать код для функции parent_fun, которая содержит вложенную функцию child_fun.

function parent_fun
x = 5;
child_fun

    function child_fun
        x = x + 1;
    end

end

Ограничения вложенных функций для генерации кода

Когда вы генерируете код для вложенных функций, необходимо придерживаться ограничений генерации кода для классов значений, массивов ячеек и классов handle. Вы также должны придерживаться следующих ограничений:

  • Если родительская функция объявляет постоянную переменную, она должна назначить постоянную переменную, прежде чем вызывать вложенную функцию, которая использует постоянную переменную.

  • Вложенная рекурсивная функция не может ссылаться на переменную, которую использует родительская функция.

  • Если вложенная функция ссылается на переменную структуры, необходимо задать структуру при помощи struct.

  • Если вложенная функция использует переменную, заданную родительской функцией, вы не можете использовать coder.varsize с переменной в родительской или вложенной функции.

Похожие темы