主要内容

用于代码生成的存储类马铃薯草代码

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

在代码生成的上下文中,a存储类是一个规范,用于确定生成代码中变量的声明和定义。对于代码生成,术语存储类与C语言术语不同存储类说明符

存储类可帮助您使用外部代码集成生成的代码。您可以对外部代码进行可见的生成变量。您还可以在生成的代码可见的外部代码中声明的变量。用于来自MATLAB的代码生成®代码,您只能使用具有全局变量的存储类。存储类确定:

  • 全局变量声明和定义的文件放置。

  • 是否从外部代码导入全局变量或导出外部代码使用。

要将存储类分配给全局变量,请在MATLAB代码中使用编码器.StorageClass.功能。只有当您使用嵌入式编码器项目或配置对象时,代码生成器才能识别编码器.StorageClass.呼叫。

语法编码器.StorageClass.是:

编码器.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”

用a声明变量#定义指令在导出数据定义头文件的一部分entry_point_name.. h

'ImportedExtern'

将变量声明为外部变量声明头文件的一部分entry_point_name._data.h。外部代码必须提供变量定义。

'importedExterterner'

将变量声明为外部指针在变量声明头文件的一部分entry_point_name._data.h。外部代码必须定义有效的指针变量。

存储类具有这些要求和限制:

  • 在声明全局变量的函数中将存储类分配给全局变量。您不必在多个函数中分配存储类。

  • 在将存储类赋值给全局变量后,不能再将另一个存储类赋值给该全局变量。

  • 您无法为常量全局变量分配存储类。

  • 一个全局变量ExportedDefine.存储类必须是标量,但不是复杂或多字量标。必须只读取全局变量,而不是在代码中写入。

如果您未将存储类分配给全局变量,除了声明位置之外,该变量的行为就像它一样“ExportedGlobal”存储类。对于一个“ExportedGlobal”存储类,全局变量在文件中声明entry_point_name.. h。当全局变量没有存储类时,该变量将在文件中声明entry_point_name._data.h

也可以看看

相关的话题