Макроопределения (#define)

C построение

#define myParam 9.8;

Экспортируйте сгенерированное макроопределение

1. Открытая модель ex_param_macro в качестве примера.

2. Модель открывает в Редакторе Simulink перспективный режим кода. Если это не делает, выберите Code> C/C ++ Code> Configure Model in Code Perspective.

3. В модели выберите блок Gain. В Property Inspector, установленном значение параметра Усиления к myParam.

4. Рядом со значением параметров кликните по кнопке действий (кнопка с тремя вертикальными точками) и выберите Create.

5. В диалоговом окне Create New Data, установленном Значении к Simulink.Parameter(9.8). Нажмите Create. объект A Simulink.Parameter, myParam, появляется в базовом рабочем пространстве. Блок Gain использует объект установить значение параметра Усиления, в этом случае, 9.8.

6. В диалоговом окне свойства Simulink.Parameter, Классе памяти набора к Define. Нажать ОК.

7. Сгенерируйте код из модели.

Сгенерированный заголовочный файл ex_param_macro.h задает myParam как макрос.

/* Definition for custom storage class: Define */
#define myParam                        9.8

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

1. В Model Data Editor, на вкладке Parameters, нажимают кнопку дополнительной информации Show/refresh.

2. Установите представление Change выпадающий список на Code.

3. Используйте столбец Класса памяти, чтобы изменить класс памяти myParam от Define до ImportedDefine.

4. Для myParam, Заголовочного файла набора к external_params.h. Сгенерированный код импортирует макроопределение из пользовательского заголовочного файла под названием external_params.h.

5. В вашей текущей папке создайте заголовочный файл C external_params.h, который содержит оператор #define.

#ifndef _EXTERNAL_PARAMS
#define _EXTERNAL_PARAMS

#define myParam 9.8

#endif

/* EOF */

7. Сгенерируйте код из модели.

Сгенерированный заголовочный файл ex_param_macro.h не задает макрос. Вместо этого файл включает (#include) пользовательский заголовочный файл external_params.h.

/* Includes for objects with custom storage classes. */
#include "external_params.h"

ex_param_macro.c исходного файла содержит защиту, чтобы проверять, что определение для myParam существует.

/*
 * Check that imported macros with storage class "ImportedDefine" are defined
 */
#ifndef myParam
#error The variable for the parameter "myParam" is not defined
#endif

Похожие темы