Typedef
通过生成 typedef 语句来创建数据类型别名。
C 构造
typedef float float_32;
过程
要在 Simulink® 中创建数据类型别名,请使用 Simulink.AliasType。代码生成器在生成的代码中创建一个 typedef 语句。
内置的 Simulink 数据类型 single 对应于 C 数据类型 float。
1.在命令提示符下,创建一个名为 float_32 的 Simulink.AliasType 对象,它表示 single 的别名。
float_32 = Simulink.AliasType('single');
2.打开示例模型 ex_typedef。

3.在模型数据编辑器中,打开输入端口/输出端口选项卡。
4.从更改视图菜单中,选择 Design。
5.在模型中,选择 Inport 模块。
6.在模型数据编辑器中,对于 Inport 模块,将数据类型设置为 float_32。如果 float_32 在下拉选项中不可用,请点击 Refresh data type。
7.打开 Embedded Coder。
8.在 C 代码选项卡上,选择代码接口 > 个体元素代码映射。
9.在代码映射编辑器的导入选项卡上,将 Inport 模块的存储类设置为 ExportedGlobal。Inport 模块在生成的代码中作为单独的全局变量出现。
10.在属性检查器中,对于 Inport 模块,将代码 > 标识符属性设置为 mySig。
11.要编译模型并生成代码,请按 Ctrl+B。
结果
生成的头文件 ex_typedef.h 定义数据类型别名 float_32。
#ifndef DEFINED_TYPEDEF_FOR_float_32_ #define DEFINED_TYPEDEF_FOR_float_32_ typedef real32_T float_32; #endif
默认情况下,代码生成器还创建别名 real32_T,它对应于 C 数据类型 float。您可以在生成的头文件 rtwtypes.h 中看到 typedef 语句。
typedef float real32_T;
生成的源文件 ex_typedef.c 使用 float_32 来定义全局变量 mySig。
/* Exported block signals */ float_32 mySig; /* '<Root>/In1' */