Определение переменных для генерации кода

В MATLAB® language, переменные могут динамически изменять свои свойства во время исполнения, поэтому можно использовать ту же переменную для хранения значения любого класса, размера или сложности. Для примера в 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 

Для получения дополнительной информации смотрите Лучшие практики для определения переменных для генерации кода C/C + +.