在生成的代码中命名结构类型
coder.cstructname
名称来使用MATLAB所生成的或外部定义的C结构类型®被表示为在生成的代码结构的变量。
coder.cstructname (
命名为MATLAB变量生成的C结构类型VAR
,structName
)VAR
。输入VAR
可以是结构或单元格数组。在生成代码的函数中使用此语法。的地方coder.cstructname
在定义之后VAR
并首次使用之前VAR
。如果VAR
是入口点(顶级)函数的输入参数,地点coder.cstructname
在函数的开头,在任何控制流语句之前。
coder.cstructname (
指定的C结构类型用于VAR
,structName
, 'EXTERN', 'HeaderFile',headerfile
)VAR
有名字structName
和在外部文件中定义,headerfileName
。
可以使用'EXTERN'
选项,而不指定头文件。但是,最佳实践是指定头文件,以便代码生成器生成# include
声明在正确的位置。
coder.cstructname (
还指定了外部定义的结构类型的运行时间存储器对准VAR
,structName
, 'EXTERN', 'HeaderFile',headerfile
“对齐”,对齐
)structName
。如果你有嵌入式编码器®并使用自定义代码替换库(CRLs),指定对齐方式,以便代码生成器能够匹配需要对结构进行对齐的CRL函数。看到代码替换的数据对齐(嵌入式编码)。
返回结构或细胞阵列型对象outtype
= coder.cstructname(intype
,structName
)outtype
指定的C结构类型的名称来生成。coder.cstructname
创建outtype
与输入类型的属性intype
。然后,它设置类型名
财产structName
。使用此语法来创建一个类型的对象,你与使用代码生成
arg游戏
选择。不能在生成代码的函数中使用此语法。
不能使用此语法在MATLAB函数块。
返回一个类型的对象outtype
= coder.cstructname(intype
,structName
, 'EXTERN', 'HeaderFile',headerfile
)outtype
指定名称和外部定义的C结构类型的位置。代码生成器使用外部定义的结构类型与类型变量outtype
。
不能使用此语法在MATLAB函数块。
创建一个类型的对象outtype
= coder.cstructname(intype
,structName
, 'EXTERN', 'HeaderFile',headerfile
“对齐”,对齐
)outtype
还指定C结构类型的对准。
不能使用此语法在MATLAB函数块。
你可以不适用coder.cstructname
直接指向全局变量。若要为要与全局变量一起使用的结构类型命名,请使用coder.cstructname
创建一个类型的对象名称的结构类型。然后,当你运行代码生成
,指定全局变量有型。看到命名的C语言结构类型使用带有全局结构变量。
对于单元格数组输入,外部定义结构的字段名必须为f1
,f2
, 等等。
有关代码生成器如何确定结构字段的C/ c++类型的信息,请参见MATLAB映射类型类型生成的代码。
使用coder.cstructname
一个结构阵列上设置结构类型的底座元件,而不是数组的名称的名称。因此,你可以不适用coder.cstructname
到一个结构数组元素,然后将其应用到具有不同的C结构类型名称的数组。例如,下面的代码是不允许的。第二coder.cstructname
尝试到基座类型的名称设置为myStructArrayName
,这与先前指定的名称冲突,myStructName
。
%定义与字段的标结构struct myStruct = ('一个',0);coder.cstructname(MYSTRUCT,'myStructName');%定义与字段的结构的阵列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
用均质coder.CellType
对象intype
使得返回的对象异质的。因此,你不能使用coder.cstructname
具有永久齐次的coder.CellType
目的。有关在一个单元阵列是永久均匀信息,请参见在命令行指定单元格数组输入。
当与使用coder.CellType
目的,coder.cstructname
创建coder.CellType
对象,它是永久地异质的。
当您使用一个名为结构coder.cstructname
与行主和列优先阵列布局的一个项目,该码发生器重命名结构在某些情况下,附加行_
要么col_
到结构名称的开头。此重命名为这两个数组布局中使用的类型提供了唯一的类型定义。
这些建议只适用于MATLAB函数块:
MATLAB函数块输入和输出结构与总线信号相关联。为结构类型生成的名称来自总线信号名称。不要使用coder.cstructname
命名为输入或输出信号的结构类型。看到创建MATLAB功能块结构(金宝app模型)。
代码生成器根据标识符命名规则产生结构类型名称,即使你的名字与结构类型coder.cstructname
。如果您有嵌入式编码器,你可以自定义命名规则。看到生成的标识符的构造(嵌入式编码)。