exponenta event banner

Определения макросов (# define

)

Конструкция C

#define myParam 9.8;

Экспорт созданного определения макроса

1. Открыть пример модели ex_param_macro.

2. В модели выберите блок усиления. В инспекторе свойств задайте значение параметра Gain равным myParam.

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

4. В диалоговом окне «Создание новых данных» задайте для параметра «Значение» значение Simulink.Parameter(9.8). Щелкните Создать (Create). A Simulink.Parameter объект, myParam, появляется в базовой рабочей области. Блок усиления использует объект для установки значения параметра усиления, в данном случае 9.8.

5. На вкладке Создание кода нажмите кнопку Настроить в приложении Coder. В редакторе сопоставлений кодов задайте для класса хранения значение Define. Нажмите кнопку ОК.

6. Чтобы создать модель и создать код, нажмите клавиши CTRL + B.

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

/* Definition for custom storage class: Define */
#define myParam                        9.8                       /* Referenced by: '<Root>/Gain' */

Повторное использование макроса из рукописного кода

1. В редакторе «Сопоставления кода» на вкладке «Параметры» нажмите кнопку «Обновить сопоставления кода».

2. Изменение класса хранения myParam от Define кому ImportedDefine.

3. В инспекторе свойств в разделе «Код» задайте для параметра «Файл заголовка» значение external_params.h. Созданный код импортирует определение макроса из пользовательского файла заголовка с именем external_params.h.

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

#ifndef _EXTERNAL_PARAMS
#define _EXTERNAL_PARAMS

#define myParam 9.8

#endif

/* EOF */

5. Чтобы создать модель и создать код, нажмите клавиши CTRL + B.

Созданный файл заголовка 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

Связанные темы