在生成的代码中命名C结构类型
coder.cstructname
命名生成的或外部定义的用于MATLAB的C结构类型®在生成的代码中表示为结构的变量。
coder.cstructname (
命名为MATLAB变量生成的C结构类型var
,structName
)var
.输入var
可以是结构或单元数组。在生成代码的函数中使用此语法。的地方coder.cstructname
在定义之后var
而在第一次使用之前var
.如果var
入口点(顶级)函数输入参数,位置coder.cstructname
在函数的开始,在任何控制流语句之前。
coder.cstructname (
指定要使用的C结构类型var
,structName
“外来的”,“HeaderFile”,headerfile
)var
有名字structName
在外部文件中定义,headerfileName
.
可以使用“外来的”
选项,不指定头文件。但是,最佳实践是指定头文件,以便代码生成器生成# include
语句在正确的位置。
coder.cstructname (
还指定外部定义的结构类型的运行时内存对齐方式var
,structName
“外来的”,“HeaderFile”,headerfile
“对齐”,对齐
)structName
.如果你有嵌入式编码器®并使用自定义代码替换库(CRL),指定对齐方式,以便代码生成器能够匹配需要对齐结构的CRL函数。看到代码替换的数据对齐(嵌入式编码).
返回一个结构或单元格数组类型对象outtype
= coder.cstructname (intype
,structName
)outtype
指定要生成的C结构类型的名称。coder.cstructname
创建outtype
输入类型的属性intype
.然后,它设置TypeName
财产structName
.对象使用的类型对象,使用此语法创建codegen
arg游戏
选择。不能在生成代码的函数中使用此语法。
中不能使用此语法MATLAB函数块。
返回类型对象outtype
= coder.cstructname (intype
,structName
“外来的”,“HeaderFile”,headerfile
)outtype
指定外部定义的C结构类型的名称和位置。代码生成器为具有type的变量使用外部定义的结构类型outtype
.
中不能使用此语法MATLAB函数块。
创建一个类型对象outtype
= coder.cstructname (intype
,structName
“外来的”,“HeaderFile”,headerfile
“对齐”,对齐
)outtype
也指定了C结构类型对齐方式。
中不能使用此语法MATLAB函数块。
你不能申请coder.cstructname
直接指向全局变量。若要命名要与全局变量一起使用的结构类型,请使用coder.cstructname
创建命名结构类型的类型对象。然后,当你跑步的时候codegen
,指定全局变量具有该类型。看到将C结构类型与全局结构变量一起命名(MATLAB编码器).
对于单元格数组输入,外部定义的结构的字段名必须是f1
,f2
,等等。
你不能申请coder.cstructname
直接指向类属性。
有关代码生成器如何确定结构字段的C/ c++类型的信息,请参见将MATLAB类型映射到生成代码中的类型(MATLAB编码器).
使用coder.cstructname
在结构数组上设置基元素的结构类型的名称,而不是数组的名称。因此,你不能申请coder.cstructname
,然后将其应用到具有不同C结构类型名称的数组中。例如,以下代码是不允许的。第二个coder.cstructname
尝试将基类型的名称设置为myStructArrayName
,与前面指定的名称冲突,myStructName
.
用字段a定义标量结构struct myStruct = (“一个”, 0);coder.cstructname (myStruct“myStructName”);用字段a定义一个结构数组myStructArray = repmat (myStruct 4 6);coder.cstructname (myStructArray“myStructArrayName”);
应用coder.cstructname
对结构数组的元素进行操作将产生与应用相同的结果coder.cstructname
整个结构数组。如果你申请coder.cstructname
对于结构数组的元素,必须使用单个下标来引用该元素。例如,你可以使用var (1)
,但不var (1, 1)
.应用coder.cstructname
来var (:)
产生与应用相同的结果coder.cstructname
来var
或var (n)
.
异构单元数组在生成的代码中表示为结构。以下是使用时的注意事项coder.cstructname
细胞数组:
在生成代码的函数中使用coder.cstructname
使用单元数组变量使单元数组异构。因此,如果单元格数组是一个入口点函数输入并且它的类型是永久同构的,那么您就不能使用coder.cstructname
用细胞阵列。
使用coder.cstructname
用均匀编码器。CellType
对象intype
使返回的对象异构。因此,您不能使用coder.cstructname
永久同质的编码器。CellType
对象。有关单元格阵列何时永久同构的信息,请参见在命令行指定单元格阵列输入(MATLAB编码器).
当与a连用时编码器。CellType
对象,coder.cstructname
创建一个编码器。CellType
永久异构的对象。
当您使用命名为coder.cstructname
在具有行为主数组布局和列为主数组布局的项目中,代码生成器在某些情况下重命名结构,并附加row_
或col_
到结构名的开头。这种重命名为两个数组布局中使用的类型提供了唯一的类型定义。
这些建议只适用于MATLAB函数块:
MATLAB函数块输入和输出结构与总线信号相关联。为结构类型生成的名称来自总线信号名称。不要使用coder.cstructname
为输入或输出信号命名结构类型。看到创建结构在MATLAB功能块.
代码生成器根据标识符命名规则生成结构类型名称,即使您使用coder.cstructname
.如果你有Embedded Coder,你可以自定义命名规则。看到生成标识符的构造(嵌入式编码).