В этом примере показано, как назвать тип структуры C для использования в коде, сгенерированном для глобальной структуры.
Чтобы назвать тип структуры C, используемый для структурной переменной, используйте coder.cstructname
. Однако применить нельзя coder.cstructname
непосредственно к глобальной переменной внутри функции. Вместо этого укажите имя типа структуры C одним из следующих способов:
В командной строке используйте coder.cstructname
для создания объекта-типа с именем типа структуры С. Когда бегаешь 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
Code generation successful.
В сгенерированном коде g
имеет тип mytype
.
mytype g;
Сгенерированный тип структуры C mytype
является:
typedef struct { double a; } mytype;
Откройте приложение MATLAB Coder и укажите, что вы хотите сгенерировать код для getmyfields
.
На странице Define Input Types нажмите Add global.
Щелкните поле рядом с глобальной переменной g
. Затем нажмите Define Initial Value
.
Введите struct('a',5)
.
Чтобы задать имя типа структуры C для g
щелкните значок передачи.
В диалоговом окне « Свойствах» рядом с именем определения типа C введите mytype
.
Кроме того, если вы определили g
или тип, объект для g
в рабочей области можно ввести g
или объект type в качестве начального значения.