Main Content

用于代码生成的变量定义

在 MATLAB® 中,变量可以在运行时动态更改其属性,因此您可以使用同一个变量来保留任何类、大小或复/实性的值。例如,以下代码可在 MATLAB 中正常运行:

function x = foo(c) %#codegen
if(c>0)
  x = 0;
else
  x = [1 2 3];
end
disp(x);
end 

然而,像 C 这样的静态类型语言必须能够在编译时确定变量属性。因此,对于 C/C++ 代码生成,在使用变量之前,必须在 MATLAB 源代码中显式定义变量的类、大小和复/实性。例如,用 x 的定义重写上述源代码:

function x = foo(c) %#codegen
x = zeros(1,3);
if(c>0)
  x = 0;
else
  x = [1 2 3];
end
disp(x);
end 

相关主题