В этом примере показано, как назвать тип структуры C, чтобы использовать в коде, сгенерированном для глобальной структуры.
Чтобы назвать тип структуры C, чтобы использовать для переменной структуры, вы используете coder.cstructname
. Однако вы не можете применить coder.cstructname
непосредственно к глобальной переменной в функции. Вместо этого задайте имя типа структуры C одним из этих способов:
В командной строке используйте coder.cstructname
создать текстовый объект, который называет тип структуры C. Когда вы запускаете codegen
, укажите, что глобальная переменная имеет тот тип.
В приложении MATLAB® Coder™, после того, как вы зададите и инициализируете глобальную переменную, задают имя типа структуры C в диалоговом окне свойств структуры.
Можно также использовать эти подходы, чтобы назвать тип структуры C для массива глобальной ячейки.
Запишите функции MATLAB® getmyfield
это возвращает поле a
из глобальной переменной g
.
type getmyfield
function y = getmyfield() % Copyright 2018 The MathWorks, Inc. %#codegen global g; y = g.a; end
Задайте и инициализируйте глобальную структуру g
.
Используйте coder.cstructname
создать текстовый объект T
это имеет свойства g
и называет сгенерированный тип структуры C mytype
.
Сгенерируйте код для getmyfield
, определение, что g
глобальная переменная с типом T
.
global g g = struct('a',5); T = coder.cstructname(g,'mytype'); codegen -config:lib -globals {'g',T} getmyfield
В сгенерированном коде, g
имеет тип mytype
.
mytype g;
Сгенерированная структура C вводит mytype
:
typedef struct { double a; } mytype;
Откройте приложение MATLAB Coder и укажите, что вы хотите сгенерировать код для getmyfields
.
На странице Define Input Types Нажмите глобальную переменную Add.
Кликните по полю рядом с глобальной переменной g
. Затем нажмите Define Initial Value
.
Введите struct('a',5)
.
Задавать имя типа структуры C, чтобы использовать для g
, кликните по значку механизма.
В диалоговом окне Properties, рядом с C вводят имя определения, вводят mytype
.
В качестве альтернативы, если вы задали g
или текстовый объект для g
в рабочей области можно ввести g
или текстовый объект как начальное значение.