По умолчанию генератор кода использует внутреннюю эвристику для определения необходимости встраивания сгенерированного кода для функций состояния. Эвристика учитывает пороговое значение. По мере роста и уменьшения размера кода генерируемый код для функций состояния может быть непредсказуемым.
Если модель включает объекты Stateflow ® и у вас есть строгие требования к отслеживаемости между сгенерированным кодом и соответствующими функциями состояния, можно переопределить поведение по умолчанию. Использовать свойство stateFunction Inline Option явным образом принудить или предотвратить встраивание функций состояний.
При принудительном встраивании для состояния генератор кода встраивает код для действий с состоянием в родительскую функцию. Родительская функция содержит код для выполнения действий состояния, внешних переходов и блок-схем. Он не включает код для пустых действий состояния.
Если запретить встраивание для состояния, генератор кода создает эти статические функции для состояния foo.
| Функция | Описание |
|---|---|
| Отмечает |
| Вызывает пути по умолчанию. |
| Выполняет блок-схемы, которые начинаются, когда внутренний переход и переход по умолчанию достигают одного и того же соединения внутри состояния. Генератор кода создает эту функцию только тогда, когда блок-схема достаточно сложна, чтобы превысить пороговое значение. В сгенерированном коде программное обеспечение Stateflow вызывает эту функцию из обоих |
| Проверяет наличие допустимых внешних переходов и, если они отсутствуют, выполняет действия. |
| Выполняет действия выхода и помечает |
| Выполняет действия выхода дочерних подсостояний, а затем выходит |
Предположим, что следующая диаграмма находится в модели M.

Если запретить встраивание для состояния Aгенератор кода создает этот код.
static void M_inner_default_A(void); static void M_exit_atomic_A(void); static void M_A(void); static void M_enter_atomic_A(void); static void M_enter_internal_A(void);
Чтобы задать свойство встраивания функции для состояния, выполните следующие действия.
Щелкните правой кнопкой мыши внутри состояния и в контекстном меню выберите «Свойства».
Откроется диалоговое окно Свойства состояния (State properties).
Для свойства Функция Встроенный параметр выберите одно из этих значений.
| Стоимость | Поведение |
|---|---|
Inline | Принудительное вложение функций состояний в родительскую функцию, если функция не является частью рекурсии. Смотрите, что происходит, когда вы заставляете Inlining. |
Function | Предотвращает встраивание функций состояний. Создает до шести статических функций для состояния. Смотрите, что происходит, когда вы предотвращаете встраивание. |
Auto | Использование внутренней эвристики для определения необходимости встраивания функций состояния. |
Нажмите кнопку «Применить».
| Кому | Задать для свойства Inline Option функции значение |
|---|---|
| Создание отдельной функции для каждого действия состояния и отдельной функции для каждого действия его подсостояний | Function для состояния и каждого подсостояния |
| Создание отдельной функции для каждого действия состояния, но включение кода для связанного действия его подсостояний | Function для государства и Inline для каждого подсостояния |