coder.cinclude
生成コードにヘッダー ファイルをインクルードする
説明
coder.cinclude(
は生成された C/C++ ソース コードにヘッダー ファイルをインクルードします。headerfile
)
MATLAB® Coder™ は、coder.cinclude
呼び出しが含まれる MATLAB コードから生成される C/C++ ソース ファイルにインクルード ステートメントを生成します。
Simulink® モデルでは、coder.cinclude
呼び出しが MATLAB Function ブロックに存在する場合、コード ジェネレーターはインクルード ステートメントをモデルのヘッダー ファイルに配置します。
メモ
coder.cinclude
呼び出しを、可能な限りヘッダー ファイルが必要な coder.ceval
呼び出しの近くに配置します。
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)