Создание псевдонимов типов данных путем создания typedef заявления.
typedef float float_32;
Чтобы создать псевдоним типа данных в Simulink ®, используйте Simulink.AliasType. Генератор кода создает typedef в созданном коде.
Встроенный тип данных Simulink single соответствует типу данных C float.
1. В командной строке создайте Simulink.AliasType объект с именем float_32 который представляет псевдоним single.
float_32 = Simulink.AliasType('single');
float_32 = Simulink.AliasType('single');
2. Открыть пример модели ex_typedef.
ex_typedef

3. В редакторе данных модели откройте вкладку Ввод/вывод (Inports/Outports).
4. В меню «Изменить вид» выберите Design.
5 В модели выберите блок «Ввод».
6. В редакторе данных модели для блока «Ввод» задайте для параметра «Тип данных» значение float_32.
set_param('ex_typedef/In1','OutDataTypeStr','float_32');
7. Откройте приложение Embedded Coder.
8. На вкладке Код C выберите Интерфейс кода > Сопоставления кодов отдельных элементов.
9. В редакторе Сопоставления кодов на вкладке Inports установите класс хранения для блока Inport равным ExportedGlobal. Блок Inport отображается в сгенерированном коде как отдельная глобальная переменная.
10. В инспекторе свойств для блока Inport задайте для свойства Code > Identifier значение mySig.
cm = coder.mapping.api.get('ex_typedef'); setInport(cm,'In1','StorageClass','ExportedGlobal','Identifier','mySig');
11. Чтобы создать модель и создать код, нажмите клавиши CTRL + B.
currentDir = pwd;
[~,cgDir] = rtwdemodir();
evalc('slbuild(''ex_typedef'')');
Созданный файл заголовка ex_typedef.h определяет псевдоним типа данных float_32.
file = fullfile('ex_typedef_ert_rtw','ex_typedef.h'); rtwdemodbtype(file,'#ifndef DEFINED_TYPEDEF_FOR_float_32_', ... '/* External outputs',1,1);
#ifndef DEFINED_TYPEDEF_FOR_float_32_ #define DEFINED_TYPEDEF_FOR_float_32_ typedef real32_T float_32; #endif
По умолчанию генератор кода также создает псевдоним real32_T, который соответствует типу данных C float. Вы можете видеть typedef оператор в созданном файле заголовка rtwtypes.h.
file = fullfile('ex_typedef_ert_rtw','rtwtypes.h'); rtwdemodbtype(file,'typedef float real32_T;', ... 'typedef float real32_T;',1,1);
typedef float real32_T;
Созданный исходный файл ex_typedef.c использование float_32 для определения глобальной переменной mySig.
file = fullfile('ex_typedef_ert_rtw','ex_typedef.c'); rtwdemodbtype(file,'/* Exported block signals */', ... '/* External outputs',1,1);
/* Exported block signals */ float_32 mySig; /* '<Root>/In1' */