coder.ReplacementTypes

Параметр конфигурации для задания пользовательских имен для встроенных типов данных MATLAB при генерации кода C/C + +

Описание

A coder.ReplacementTypes объект содержит параметры конфигурации, которые генератор кода использует для создания пользовательских имен типов данных для MATLAB® встроенные типы данных при генерации кода C/C + +.

Вы должны связать coder.ReplacementTypes объект с Embedded Coder® объект строения (a coder.EmbeddedCodeConfig объект), который вы передаете в codegen функция.

Вы можете получить доступ к coder.ReplacementTypes свойства из интерфейса командной строки (см. «Задание пользовательских имен для MATLAB встроенных типов данных») или диалогового окна для связанного объекта строения (см. «Свойства типов замещения Доступа диалоговом окне»).

Создание

Используйте coder.config функция для создания coder.EmbeddedCodeConfig объект для генерации автономного кода. Когда coder.config функция создает coder.EmbeddedCodeConfig объект, он устанавливает ReplacementTypes свойство к coder.ReplacementTypes объект.

Свойства

расширить все

Настраиваемое имя для double тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для single тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для uint8 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для uint16 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для uint32 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для uint64 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для int8 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для int16 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для int32 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для int64 тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для char тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Настраиваемое имя для logical тип данных в сгенерированном коде C/C + +, заданный как вектор символов или строковый скаляр.

Включите или отключите импорт определений типов из внешних файлов заголовков для использования в сгенерированном коде C/C + +.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Пользовательские определения типов генерируются в файле rtwtypes.h. Импорт определений типов из внешних файлов заголовков не допускается для генерации кода.

true

Для генерации кода допускается импорт определений типов из внешних файлов заголовков. Указанные файлы заголовков включены в <function>_types.h. Для примера, если имя функции myFuncвнешний файл заголовка включен в сгенерированный файл заголовка myFunc_types.h.

Имена файлов внешних заголовков, которые содержат пользовательские определения типов.

Несколько заголовочных файлов, заданных в качестве одного из значений в этой таблице.

ЗначениеОписание
Строковые массивы

Строковые массивы в ReplacementTypes.HeaderFiles. Для примера, cfg.ReplacementTypes.HeaderFiles = ["myHeader1.h","myHeader2.h","myHeader3.h"].

Массив ячеек из символьных векторов

Массив ячеек из векторов символов в ReplacementTypes.HeaderFiles. Для примера, cfg.ReplacementTypes.HeaderFiles = {'myHeader1.h','myHeader2.h','myHeader3.h'}.

Вектор символов

Разделенный точкой с запятой список имен файлов заголовков в ReplacementTypes.HeaderFiles. Для примера, cfg.ReplacementTypes.HeaderFiles = 'myHeader1.h;myHeader2.h;myHeader3.h'.

Примечание

Установка нескольких записей в объектах строения кода с помощью векторов символов будет удалена в следующем релизе. Вместо этого используйте строковые массивы и массив ячеек из вектора символов. Для получения дополнительной информации см. раздел Вопросов совместимости.

Примеры

свернуть все

Написать функцию MATLAB, из которой можно сгенерировать код. Этот пример использует функцию myAdd.m, который возвращает сумму его входов.

function c = myAdd(a,b)
c = a + b;
end

Создайте coder.EmbeddedCodeConfig объект для генерации статической библиотеки.

cfg = coder.config('lib','ecoder',true);

Установите EnableCustomReplacementTypes на true.

cfg.EnableCustomReplacementTypes = true;

Задайте пользовательские имена для встроенных типов данных MATLAB. Для примера в коде double называется как Custom_Double и int8 называется как Custom_Int8.

cfg.ReplacementTypes.double = "Custom_Double";
cfg.ReplacementTypes.int8 = "Custom_Int8";

Сгенерируйте код при помощи codegen функции и -config опция.

codegen myAdd.m -args {1,int8(1)} -config cfg -report

Сгенерированный код содержит пользовательские имена типов данных.

Создайте папку с возможностью записи myFiles.

Написать функцию MATLAB, из которой можно сгенерировать код. Сохраните функцию в myFiles. Этот пример использует функцию myAdd.m, который возвращает сумму его входов.

function c = myAdd(a,b)
c = a + b;
end

Запишите файл заголовка myHeader.h который содержит определения типов для двух входов функции myAdd.m. Сохраните его в myFiles.

#if !defined(MYHEADER)
#define MYHEADER
typedef double Custom_Double;
typedef char Custom_Int8;
#endif

Создайте coder.EmbeddedCodeConfig объект для генерации статической библиотеки.

cfg = coder.config('lib','ecoder',true);

Задайте пользовательские имена для встроенных типов данных MATLAB. Для примера в коде double называется как Custom_Double и int8 называется как Custom_Int8.

cfg.EnableCustomReplacementTypes = true;
cfg.ReplacementTypes.double = "Custom_Double";
cfg.ReplacementTypes.int8 = "Custom_Int8";

Задайте свойства строения для импорта внешних файлов заголовков.

% Include single header file

cfg.ReplacementTypes.IsExtern = true;
cfg.ReplacementTypes.HeaderFiles = "myHeader.h";
cfg.CustomInclude = 'C:\myFiles'; % Include path of the header file

% Include multiple header files

cfg.ReplacementTypes.IsExtern = true;
cfg.ReplacementTypes.HeaderFiles = "myHeader1.h;myHeader2.h;myHeader3.h";
cfg.CustomInclude = '"C:\Program Files\MATLAB\myFiles"'; % Include path of the header files

Сгенерируйте код при помощи codegen функции и -config опция.

codegen myAdd.m -args {1,int8(1)} -config cfg -report

В сгенерированном коде myAdd_types.h включает внешний заголовочный файл myHeader.h.

Дополнительные сведения об импорте пользовательских определений типов данных из внешних заголовочных файлов см. в разделе Импорт пользовательских определений типов данных из внешних файлов заголовков (Embedded Coder).

Откройте диалоговое окно для объекта строения, который ссылается на coder.ReplacementTypes объект. Для примера:

cfg = coder.config('lib');
open('cfg');

В диалоговом окне перейдите на вкладку Code Appearance.

Выберите Enable custom data type replacement. В Custom Data Type Replacement таблице перечислены имена поддерживаемых типов данных. Задайте свои пользовательские имена для этих типов данных и нажмите Enter.

Можно импортировать собственные пользовательские определения типов из внешних заголовочных файлов. Установите флажок Import custom types from external header files. В Header files текстовом поле введите разделенный точкой с запятой список имен внешних заголовочных файлов. Для получения дополнительной информации смотрите Импорт пользовательских определений типов данных из внешних файлов заголовков (Embedded Coder).

Диалоговое окно объекта строения не поддерживается в Online™ MATLAB.

Вопросы совместимости

расширить все

Изменение поведения в будущем релизе

Введенный в R2019b