coder.cinclude
生成コードにヘッダー ファイルをインクルードする
説明
coder.cinclude( は生成された C/C++ ソース コードにヘッダー ファイルをインクルードします。headerfile)
MATLAB® Coder™ は、coder.cinclude 呼び出しが含まれる MATLAB コードから生成される C/C++ ソース ファイルにインクルード ステートメントを生成します。
Simulink® モデルでは、coder.cinclude 呼び出しが MATLAB Function ブロックに存在する場合、コード ジェネレーターはインクルード ステートメントをモデルのヘッダー ファイルに配置します。
メモ
ほとんどの場合は、coder.cinclude の代わりに、"-headerfile" オプションを指定して coder.ceval (MATLAB Coder) を使用します。coder.cinclude は、同じヘッダー ファイルで定義された複数の C/C++ 関数を coder.ceval を使用して呼び出す場合にのみ使用します。coder.cinclude は対応する coder.ceval 呼び出しの前に呼び出す必要があり、coder.cinclude と coder.ceval は同じ MATLAB 関数で呼び出さなければなりません。
coder.cinclude( は headerfile,'InAllSourceFiles',allfiles)allfiles オプションを使用してヘッダー ファイルをほとんどすべての C/C++ ソース ファイルにインクルードするかどうかを決定します。
allfiles が true のとき、MATLAB Coder は一部のユーティリティ ファイルを除いたほとんどすべての C/C++ ソース ファイルにインクルード ステートメントを生成します。この動作は R2016a 以前のリリースからの coder.cinclude の動作です。これらの追加ファイルにインクルード ステートメントがあることにより、コンパイル時間が増加し、生成されたコードの可読性が低下する可能性があります。このオプションは、コードがレガシ動作に依存する場合にのみ使用してください。allfiles が false のときの動作は coder.cinclude(headerfile) と同じ動作になります。
MATLAB Function ブロック内では、coder.cinclude(headerfile,'InAllSourceFiles', allfiles) は coder.cinclude(headerfile) と同じです。
例
入力引数
制限
実行時の条件付き構成 (
ifステートメント、switchステートメント、whileループ、forループなど) の内部で、関数coder.cincludeを呼び出さないでください。コンパイル時の条件付きステートメント (関数coder.targetなど) の内部では、coder.cincludeを呼び出すことができます。以下に例を示します。... if ~coder.target('MATLAB') coder.cinclude('foo.h'); coder.ceval('foo'); end ...
ヒント
coder.ceval呼び出しの前に、coder.cincludeを呼び出してcoder.cevalが呼び出す外部関数に必要なヘッダー ファイルをインクルードします。生成された C/C++ コード内の不要なインクルード ステートメントにより、コンパイル時間が増加し、コードの可読性が低下する可能性があります。MATLAB Coder で生成されたコード内に不要なインクルード ステートメントが含まれないようにするには、以下のベスト プラクティスに従います。
coder.cinclude呼び出しを、可能な限りヘッダー ファイルが必要なcoder.ceval呼び出しの近くに配置します。allfilesをtrueに設定しないでください。
MATLAB Function ブロックの場合、コード ジェネレーターはモデル ヘッダー ファイル内にインクルード ステートメントを生成します。
R2016a 以前のリリースでは、すべての
coder.cinclude呼び出しに対し、MATLAB Coder は一部のユーティリティ ファイルを除いて、生成されたほとんどすべての C/C++ ソース ファイルにヘッダー ファイルをインクルードしていました。このレガシ動作に依存するコードがある場合、次の構文を使用してレガシ動作を保持できます。coder.cinclude(headerfile,'InAllSourceFiles',true)
拡張機能
バージョン履歴
R2013a で導入
参考
coder.ceval | coder.target | coder.reservedName (MATLAB Coder)
トピック
- モデル コンフィギュレーション パラメーター: コード生成のカスタム コード (Simulink Coder)
