API для сгенерированного повторно используемого кода

Когда вы генерируете повторно используемый код, MATLAB® Coder™ поддерживает динамическое выделение:

  • Функциональные переменные, которые являются слишком большими для стека

  • Персистентные переменные

  • Глобальные переменные

Это генерирует заголовочный файл, primary_function_name_types.h, то, что необходимо включать при использовании сгенерированного кода. Этот заголовочный файл содержит следующие структуры:

  • primary_function_nameStackData

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

    • Непосредственно, потому что функция использует поле в структуре.

    • Косвенно, потому что функция передает структуру вызванной функции.

    Если алгоритм использует персистентные или глобальные данные, primary_function_nameStackData структура также содержит указатель на primary_function_namePersistentData структура. Если вы включаете этот указатель, только необходимо передать один параметр каждой вызывающей функции.

  • primary_function_namePersistentData

    Если ваш алгоритм использует персистентные или глобальные переменные, MATLAB Coder предоставляет отдельную структуру им. Структура выделения памяти содержит указатель на эту структуру. Поскольку у вас есть отдельная структура для персистентных и глобальных переменных, можно выделить память для этих переменных однажды и совместно использовать их со всеми потоками. Однако, если нет никакой связи между потоками, можно выделить память для этих переменных на поток.

Для получения дополнительной информации об использовании этих глобальных структур смотрите Многопоточные Примеры.

Для просмотра документации необходимо авторизоваться на сайте