グローバル構造体変数と共に使用するための C 構造体型の命名
この例では、グローバル構造体向けに生成されたコードで使用するために C 構造体型に名前を付ける方法を示します。
構造体変数に使用するために C 構造体型に名前を付けるには、coder.cstructname
を使用します。ただし、関数内のグローバル変数に coder.cstructname
を直接適用することはできません。代わりに、次のいずれかの方法で C 構造体型名を指定します。
コマンド ラインで、
coder.cstructname
を使用して C 構造体型に名前を付ける型オブジェクトを作成します。codegen
を実行するときに、グローバル変数がその型をもつことを指定します。MATLAB® Coder™ アプリでは、グローバル変数の定義および初期化後に、構造体のプロパティのダイアログ ボックスで C 構造体型名を指定します。
また、これらの方法を使用してグローバル cell 配列の C 構造体型に名前を付けることができます。
グローバル変数を使用する MATLAB 関数の作成
グローバル変数 g
のフィールド a
を返す MATLAB® 関数 getmyfield
を作成します。
type getmyfield
function y = getmyfield() % Copyright 2018 The MathWorks, Inc. %#codegen global g; y = g.a; end
コマンド ラインでの C 構造体型名の指定
グローバル構造体
g
を定義および初期化します。coder.cstructname
を使用してg
のプロパティをもつ型オブジェクトT
を作成し、生成された C 構造体型mytype
に名前を付けます。g
が型T
をもつグローバル変数であると指定して、getmyfield
のコードを生成します。
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 アプリでの C 構造体型名の指定
MATLAB Coder アプリを開いて、
getmyfields
の生成するコードを指定します。[入力の型を定義] ページで、[グローバルの追加] をクリックします。
グローバル変数
g
の横にあるフィールドをクリックします。次に、Define Initial Value
をクリックします。「
struct('a',5)
」と入力します。g
に使用する C 構造体型名を指定するには、ギア アイコンをクリックします。[プロパティ] ダイアログ ボックスで、[C の型定義名] の横に
mytype
と入力します。
あるいは、ワークスペースで g
または g
の型オブジェクトを定義した場合、g
または型オブジェクトを初期値として入力できます。