Можно создать код для неиспользуемой подсистемы с предсказуемым интерфейсом функций. Предсказуемый интерфейс может быть полезен для отладки и тестирования кода и его интеграции с внешними приложениями. Сгенерированный код с прогнозируемым функциональным интерфейсом является более читаемым.
При указании параметра блока Function interface как Allow arguments (Match graphical interface)сгенерированный функциональный интерфейс соответствует графическому блочному интерфейсу подсистемы. Например, если подсистема имеет два порта ввода и один порт вывода, интерфейс функции генерирует два аргумента для портов ввода и один аргумент функции для порта вывода. Порядок аргументов определяется индексом порта. Интерфейс функции предсказуем и не изменяется.
При создании кода для неиспользуемой подсистемы с параметром блока Function interface, равным Allow arguments (Optimized)генератор кода генерирует интерфейс функции Subsystem, который передает данные через аргументы. Аргументы функции могут не соответствовать графическому блочному интерфейсу подсистемы.
В этом примере показано, как генерируемый код отличается при указании Function interface как Allow arguments (Optimized) и Allow arguments (Match graphical interface).
1. Открыть пример модели ex_mux_allow_arguments. Подсистема в модели содержит три входа и два выхода.

2. Щелкните правой кнопкой мыши подсистему и выберите в контекстном меню «Параметры блока (подсистема)». Либо нажмите кнопку «Подсистема», чтобы открыть диалоговое окно «Параметры блока» на панели «Инспектор свойств».
3. Соблюдайте следующие предустановленные параметры, необходимые для создания ожидаемого кода:
На вкладке «Главная» выбран параметр блока «Считать атомной единицей».
На закладке Создание кода Упаковка функций: Nonreusable function и функциональный интерфейс Allow arguments (Optimized).
4. Откройте приложение Embedded Coder. Нажмите кнопку Build.
Созданный код в ex_mux_allow_arguments.c файл содержит интерфейс функции Subsystem с аргументами:
/* Output and update for atomic system: '<Root>/Subsystem' */
static void FPCSS_Mux(real_T rtu_In1, real_T rtu_In2, real_T rty_Out2[4])
{
/* Constant: '<S1>/Constant1' */
rtDW.Constant1 = 5.0;
/* Gain: '<S1>/Gain4' */
rtDW.Gain4 = 10.0 * rtu_In1;
/* Gain: '<S1>/Gain1' incorporates:
* Constant: '<S1>/Constant'
*/
rty_Out2[0] = 150.0;
rty_Out2[1] = 15.0 * rtu_In2;
rty_Out2[2] = 15.0 * rtu_In1;
rty_Out2[3] = 15.0 * rtu_In2;
}
Allow arguments (Optimized) спецификация приводит к оптимизации генерируемого кода за счет уменьшения глобальной оперативной памяти. Интерфейс функции имеет некоторые входы и выходы в качестве аргументов функции. Сгенерированный функциональный интерфейс не соответствует графическому блочному интерфейсу подсистемы.
1. В примере модели ex_mux_allow_argumentsоткройте диалоговое окно «Параметры блока подсистемы».
2. На вкладке «Создание кода» укажите Function interface как Allow arguments (Match graphical interface) и нажмите «Применить».
3. Создайте код для модели.
Созданный код в ex_mux_allow_arguments.c файл содержит интерфейс функции Subsystem с аргументами, соответствующими интерфейсу блока Subsystem:
/* Output and update for atomic system: '<Root>/Subsystem' */
static void FPCSS_Mux(real_T rtu_In1, const real_T rtu_In2[2], real_T rtu_In3,
real_T rty_Out1[2], real_T rty_Out2[4])
{
/* SignalConversion generated from: '<S1>/Out1' incorporates:
* Constant: '<S1>/Constant1'
* Gain: '<S1>/Gain4'
*/
rty_Out1[0] = 5.0;
rty_Out1[1] = 10.0 * rtu_In1;
/* Gain: '<S1>/Gain1' incorporates:
* Constant: '<S1>/Constant'
*/
rty_Out2[0] = 150.0;
rty_Out2[1] = 15.0 * rtu_In3;
rty_Out2[2] = 15.0 * rtu_In2[0];
rty_Out2[3] = 15.0 * rtu_In2[1];
}
Allow arguments (Match graphical interface) спецификация генерирует предсказуемый интерфейс и сопоставляет аргументы функции с графическим интерфейсом блока подсистемы. Существуют массивы как часть аргументов функции для учета комбинации входных или выходных сигналов, которые использует блок Mux.
Для включенной, запускаемой или сбрасываемой подсистемы с Allow arguments (Match graphical interface) сгенерированная функция содержит аргументы, соответствующие каждому блоку Enable, Trigger и/или Reset, присутствующему в этой подсистеме.
Интерфейс Function установлен как Allow arguments (Match graphical interface) спецификация не применима к опции контекстного меню C/C + + > Построить эту подсистему.
Нельзя управлять именами аргументов.