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' */