这个示例展示了如何命名C结构类型,以便在为全局结构生成的代码中使用。gydF4y2Ba
要命名要用于结构变量的C结构类型,可以使用gydF4y2Bacoder.cstructnamegydF4y2Ba
.但是,你不能申请gydF4y2Bacoder.cstructnamegydF4y2Ba
直接指向函数内部的全局变量。相反,可以用以下方式之一指定C结构类型名:gydF4y2Ba
在命令行,使用gydF4y2Bacoder.cstructnamegydF4y2Ba
创建命名C结构类型的类型对象。当您运行gydF4y2BacodegengydF4y2Ba
,指定全局变量具有该类型。gydF4y2Ba
在MATLAB®Coder™应用程序中,定义和初始化一个全局变量后,在结构属性对话框中指定C结构类型名称。gydF4y2Ba
还可以使用这些方法为全局单元格数组命名C结构类型。gydF4y2Ba
编写MATLAB®函数gydF4y2BagetmyfieldgydF4y2Ba
返回字段gydF4y2Ba一个gydF4y2Ba
的全局变量gydF4y2BaggydF4y2Ba
.gydF4y2Ba
类型gydF4y2BagetmyfieldgydF4y2Ba
function y = getmyfield() % Copyright 2018 The MathWorks, Inc. %#codegen global g;y = g.a;结束gydF4y2Ba
定义和初始化一个全局结构gydF4y2BaggydF4y2Ba
.gydF4y2Ba
使用gydF4y2Bacoder.cstructnamegydF4y2Ba
创建一个类型对象gydF4y2BaTgydF4y2Ba
它的性质是gydF4y2BaggydF4y2Ba
并命名生成的C结构类型gydF4y2BamytypegydF4y2Ba
.gydF4y2Ba
生成的代码gydF4y2BagetmyfieldgydF4y2Ba
指定,gydF4y2BaggydF4y2Ba
类型是全局变量吗gydF4y2BaTgydF4y2Ba
.gydF4y2Ba
全球gydF4y2Bastruct = struct(gydF4y2Ba“一个”gydF4y2Ba5);T = coder.cstructname (g,gydF4y2Ba“mytype”gydF4y2Ba);codegengydF4y2Ba配置:自由gydF4y2Ba全局变量gydF4y2Ba{' g ' T}gydF4y2BagetmyfieldgydF4y2Ba
代码生成成功。gydF4y2Ba
在生成的代码中,gydF4y2BaggydF4y2Ba
有类型gydF4y2BamytypegydF4y2Ba
.gydF4y2Ba
mytype g;gydF4y2Ba
生成的C结构类型gydF4y2BamytypegydF4y2Ba
是:gydF4y2Ba
Typedef struct {double a;} mytype;gydF4y2Ba
打开MATLAB Coder应用程序并指定您想要生成的代码gydF4y2BagetmyfieldsgydF4y2Ba
.gydF4y2Ba
在gydF4y2Ba定义输入类型gydF4y2Ba页面,点击gydF4y2Ba增加全球gydF4y2Ba.gydF4y2Ba
单击全局变量旁边的字段gydF4y2BaggydF4y2Ba
.然后,单击gydF4y2Ba定义初始值gydF4y2Ba
.gydF4y2Ba
输入gydF4y2Ba结构(' a ', 5)gydF4y2Ba
.gydF4y2Ba
指定要使用的C结构类型名称gydF4y2BaggydF4y2Ba
,点击齿轮图标。gydF4y2Ba
在“属性”对话框中,在gydF4y2BaC类型定义名gydF4y2Ba,输入gydF4y2BamytypegydF4y2Ba
.gydF4y2Ba
或者,如果你定义gydF4y2BaggydF4y2Ba
的类型对象gydF4y2BaggydF4y2Ba
在工作区中,您可以输入gydF4y2BaggydF4y2Ba
或将type对象作为初始值。gydF4y2Ba