В этом примере показано, как переупорядочить заменимые операнды, чтобы сделать выражения леворекурсивными. Оставленный - рекурсивное переупорядочение сохраняет стековое пространство в памяти. Эта оптимизация повышает эффективность кода.
Чтобы переупорядочить заменимые операнды, создайте эту модель и назовите ее operand_order
. Выходной сигнал является результатом умножения сигнала от Inport блока In1
суммой сигналов от Inport блоков In2
и In3
.
Откройте диалоговое окно Model Configuration Parameters. На вкладке Code Style выберите параметр Preserve operand order in expression.
Сгенерируйте код для модели.
В 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. На вкладке Code Style очистите параметр Preserve operand order in expression.
Сгенерируйте код для модели.
В operand_order.c
файл, operand_order_step
функция содержит этот код:
operand_order_Y.Out1 = (operand_order_U.In2 + operand_order_U.In3) * operand_order_U.In1;
Генератор кода оптимизирует код путем переупорядочения заменимых операндов, чтобы сделать выражение леворекурсивным, которые повышают эффективность кода.