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

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

function parent_fun
x = 5;
child_fun

    function child_fun
        x = x + 1;
    end

end

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

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

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

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

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

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

Похожие темы