Параметр конфигурации, чтобы задать пользовательские имена для MATLAB встроенные типы данных в генерации кода C/C++
coder.ReplacementTypes
объект содержит параметры конфигурации, что генератор кода использует в создании имен пользовательского типа данных для MATLAB® встроенные типы данных в генерации кода C/C++.
Необходимо сопоставить coder.ReplacementTypes
объект с объектом настройки Embedded Coder® (coder.EmbeddedCodeConfig
объект), что вы передаете codegen
функция.
Можно получить доступ к coder.ReplacementTypes
свойства от любого, интерфейс командной строки (см., Задает Пользовательские Имена для MATLAB Встроенные Типы данных), или диалоговое окно для связанного объекта настройки (см. Access Replacement Types Properties Через Диалоговое окно).
Используйте coder.config
функция, чтобы создать coder.EmbeddedCodeConfig
объект для генерации автономного кода. Когда coder.config
функция создает coder.EmbeddedCodeConfig
объект, это устанавливает ReplacementTypes
свойство к coder.ReplacementTypes
объект.
double
— Пользовательское имя для double
тип данныхПользовательское имя для double
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
single
— Пользовательское имя для single
тип данныхПользовательское имя для single
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
uint8
— Пользовательское имя для uint8
тип данныхПользовательское имя для uint8
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
uint16
— Пользовательское имя для uint16
тип данныхПользовательское имя для uint16
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
uint32
— Пользовательское имя для uint32
тип данныхПользовательское имя для uint32
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
uint64
— Пользовательское имя для uint64
тип данныхПользовательское имя для uint64
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
int8
— Пользовательское имя для int8
тип данныхПользовательское имя для int8
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
int16
— Пользовательское имя для int16
тип данныхПользовательское имя для int16
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
int32
— Пользовательское имя для int32
тип данныхПользовательское имя для int32
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
int64
— Пользовательское имя для int64
тип данныхПользовательское имя для int64
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
char
— Пользовательское имя для char
тип данныхПользовательское имя для char
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
logical
— Пользовательское имя для logical
тип данныхПользовательское имя для logical
тип данных в сгенерированном коде C/C++, заданном как вектор символов или скаляр строки.
IsExtern
— Импортируйте определение типа из внешних заголовочных файловfalse
(значение по умолчанию) | true
| логическийВключите или отключите определения типа импорта от внешних заголовочных файлов для использования в сгенерированном коде C/C++.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Пользовательские определения типа сгенерированы в файле |
true | Импорт определений типа от внешних заголовочных файлов позволен для генерации кода. Заданные заголовочные файлы включены в |
HeaderFiles
— Имя внешнего заголовочного файла для импортаВнешние имена заголовочного файла, которые содержат пользовательские определения типа.
Чтобы задать несколько заголовочных файлов, используйте разделенный от точки с запятой список имен заголовочного файла в 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).
Диалоговое окно объекта настройки не поддержано в MATLAB Online™.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.