Main Content

Typedef

通过生成 typedef 语句来创建数据类型别名。

C 构造

typedef float float_32;

过程

要在 Simulink® 中创建数据类型别名,请使用 Simulink.AliasType。代码生成器在生成的代码中创建一个 typedef 语句。

内置的 Simulink 数据类型 single 对应于 C 数据类型 float

1.在命令提示符下,创建一个名为 float_32Simulink.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' */

另请参阅

相关主题