如果你有嵌入式编码器®在生成的C/ c++代码中,您可以使用存储类来控制全局变量的声明和定义。
在代码生成的上下文中,a存储类在生成的代码中确定变量的声明和定义的规范。对于代码生成,术语存储类与C语言术语不同存储类说明符。
存储类帮助您将生成的代码与外部代码集成。可以使生成的变量对外部代码可见。还可以使在外部代码中声明的变量对生成的代码可见。用于从MATLAB生成代码®代码中,只能使用全局变量的存储类。存储类决定:
全局变量声明和定义的文件位置。
全局变量是从外部代码导入还是导出供外部代码使用。
要将存储类分配给全局变量,请在MATLAB代码中使用coder.storageClass
函数。只有当您使用Embedded Coder项目或配置对象生成C/ c++库或可执行文件时,代码生成器才会识别coder.storageClass
调用。
的语法coder.storageClass
是:
coder.storageClass(global_name, storage_class)
global_name
全局变量的名称,指定为字符向量。global_name
必须是编译时常数。
storage_class
可以是以下值之一。
存储类 | 描述 |
---|---|
“ExportedGlobal” |
|
“ExportedDefine” |
声明变量 |
“ImportedExtern” |
声明变量为 |
“ImportedExternPointer” |
声明变量为 |
存储类有以下要求和限制:
将存储类赋给声明全局变量的函数中的全局变量。您不必在多个函数中分配存储类。
将存储类分配给全局变量后,就不能将其他存储类分配给该全局变量。
不能将存储类分配给常量全局变量。
的全局变量ExportedDefine
存储类必须是标量,但不能是复杂或多词标量。在代码中只能读取全局变量,不能写入全局变量。
如果没有将存储类分配给全局变量(除了声明位置之外),则该变量的行为就像具有“ExportedGlobal”
存储类。对于一个“ExportedGlobal”
存储类中,全局变量在文件中声明
。当全局变量没有存储类时,将在文件中声明该变量entry_point_name
。h
。entry_point_name
_data.h