В этом примере показано, как изменить порядок коммутируемых операндов, чтобы сделать выражения леворекурсивными. Рекурсивная переупорядоченность слева экономит пространство стека в памяти. Эта оптимизация повышает эффективность кода.
Чтобы переупорядочить коммутируемые операнды, создайте эту модель и присвойте ей имя operand_order. Выходной сигнал является результатом умножения сигнала из блока Inport In1 по сумме сигналов от блоков Inport In2 и In3.

Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters). На вкладке Стиль кода выберите параметр Сохранить порядок операндов в выражении.
Создайте код для модели.
В operand_order.c файл, operand_order_step функция содержит следующий код:
operand_order_Y.Out1 = operand_order_U.In1 * (operand_order_U.In2 +
operand_order_U.In3);
Генератор кода сохраняет заданный порядок выражений в модели, что повышает читаемость кода для отслеживания кода.
Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters). На вкладке Стиль кода снимите флажок Сохранить порядок операндов в выражении.
Создайте код для модели.
В operand_order.c файл, operand_order_step функция содержит следующий код:
operand_order_Y.Out1 = (operand_order_U.In2 + operand_order_U.In3) *
operand_order_U.In1;
Генератор кода оптимизирует код, переупорядочивая коммутируемые операнды, чтобы сделать выражение леворекурсивным, что повышает эффективность кода.