主要内容

存储类的代码生成MATLAB代码

如果你有一个嵌入式编码器®许可,您可以使用存储类来控制一个全局变量的声明和定义生成的C / c++代码。

上下文中的代码生成存储类是一个规范,它决定了一个变量的声明和定义生成的代码。对于代码生成,存储类C语言是不一样的存储类说明符

存储类帮助你整合与外部代码生成的代码。你可以看到外部代码生成的变量。你也可以看到外部代码中声明的变量生成的代码。从MATLAB代码生成®代码,您只能使用全局变量存储类。存储类决定:

  • 一个全局变量声明和定义的文件位置。

  • 全局变量是否从外部代码进口或出口供外部使用的代码。

为一个全局变量分配一个存储类,在MATLAB代码中,使用coder.storageClass函数。只有当你使用一个嵌入式编码项目或配置对象生成C / c++库的或可执行程序代码生成器辨认coder.storageClass调用。

的语法coder.storageClass是:

coder.storageClass(global_name, storage_class)

global_name是一个全局变量的名称,指定为一个特征向量。global_name必须是一个编译时常量。

storage_class可以是下列值之一。

存储类 描述
“ExportedGlobal”
  • 定义了变量变量定义部分的C文件entry_point_name。c

  • 作为一个声明了变量走读生变量声明的头文件entry_point_name。h

  • 初始化函数中的变量entry_point_name_initialize.h

“ExportedDefine”

声明的变量#定义指令的导出的数据定义的头文件entry_point_name。h

“ImportedExtern”

作为一个声明了变量走读生变量声明的头文件entry_point_name_data.h。外部代码必须提供的变量定义。

“ImportedExternPointer”

作为一个声明了变量走读生指针的变量声明的头文件entry_point_name_data.h。外部代码必须定义一个有效的指针变量。

存储类有这些需求和限制:

  • 将存储类分配给一个全局变量声明全局变量的函数。你不需要分配多个函数的存储类。

  • 在你为一个全局变量分配一个存储类,你不能指定一个不同的存储类的全局变量。

  • 你不能为一个常数全局变量分配一个存储类。

  • 一个全局变量ExportedDefine存储类必须是一个标量,但不是一个复杂的或多词标量。全局变量只能读而不是写的代码。

如果你不为一个全局变量分配一个存储类,除了声明的位置,变量像它有一个“ExportedGlobal”存储类。对于一个“ExportedGlobal”存储类,文件中声明的全局变量entry_point_name。h。全局变量时没有存储类,文件中声明的变量entry_point_name_data.h

另请参阅

相关的话题