主要内容

为代码生成定义标量结构

限制在定义标量结构的任务

当你定义一个标量结构通过将一个变量分配给一个先前存在的结构,不需要定义变量赋值之前。然而,如果你已经定义变量,它必须具有相同的类,大小和复杂性结构你分配给它。在接下来的例子中,p被定义为一个结构相同的属性为预定义的结构年代:

…S =结构(' a ', 0, ' b ', 1, ' c ', 2);p = S;…

添加字段一致的顺序在每个控制流路径

当您创建一个结构,您必须添加字段在每个控制流路径相同的顺序。例如,下面的代码生成一个编译错误,因为它添加了字段的结构x在每个不同的顺序如果声明条款:

函数y = fcn (u) % # codegen如果u > 0 x。= 10;x.b= 20; else x.b = 30; % Generates an error (on variable x) x.a = 40; end y = x.a + x.b;

在这个例子中,赋值x.a之前x.b在第一个如果声明条款,但作业出现在相反的顺序其他的条款。这是修正后的代码:

函数y = fcn (u) % # codegen如果u > 0 x。= 10;x.b= 20; else x.a = 40; x.b = 30; end y = x.a + x.b;

第一次使用后限制添加新字段

你不能添加字段结构对结构在您执行以下操作:

  • 阅读的结构

  • 索引结构数组

  • 传递函数结构

例如,考虑这样的代码:

…x。c= 10; % Defines structure and creates field c y = x; % Reads from structure x.d = 20; % Generates an error ...

在这个例子中,尝试添加一个新的字段d阅读后结构x生成一个错误。

这一限制跨层次结构。例如,您无法添加字段结构后操作的字段或嵌套结构,在这个例子中:

函数y = fcn (u) % # codegen x。c = 10;y = x.c;x。d= 20; % Generates an error

在这个例子中,尝试添加一个新的字段d结构x阅读后结构的磁场c生成一个错误。