Main Content

マクロ定義 (#define)

C コンストラクター

#define myParam 9.8;

生成されたマクロ定義のエクスポート

1. モデル例 ex_param_macro を開きます。

2. モデルで Gain ブロックを選択します。プロパティ インスペクターで、[ゲイン] パラメーターの値を myParam に設定します。

3. パラメーター値の横にあるアクション ボタン (3 つの縦向きのドットのボタン) をクリックし、[作成] を選択します。

4. [新規データの作成] ダイアログ ボックスで、[値]Simulink.Parameter(9.8) に設定します。[作成] をクリックします。Simulink.Parameter オブジェクト myParam がベース ワークスペースに表示されます。このオブジェクトを使用して、Gain ブロックで [ゲイン] パラメーターの値が設定されます。この例では 9.8 です。

5. [コード生成] タブで、[Coder アプリでの構成] ボタンをクリックします。コード マッピング エディターで、[ストレージ クラス]Define に設定します。[OK] をクリックします。

6. モデルをビルドしてコードを生成するには、Ctrl+B を押します。

生成されたヘッダー ファイル ex_param_macro.hmyParam がマクロとして定義されます。

/* Definition for custom storage class: Define */
#define myParam                        9.8                       /* Referenced by: '<Root>/Gain' */

手書きコードからのマクロの再利用

1. コード マッピング エディターの [パラメーター] タブで、[コード マッピングを更新します] ボタンをクリックします。

2. myParam[ストレージ クラス]Define から ImportedDefine に変更します。

3. プロパティ インスペクターの [コード] セクションで、[ヘッダー ファイル]external_params.h に設定します。生成されたコードで、external_params.h という名前のカスタム ヘッダー ファイルからマクロ定義がインポートされます。

4. 現在のフォルダーで、#define ステートメントを含む C ヘッダー ファイル external_params.h を作成します。

#ifndef _EXTERNAL_PARAMS
#define _EXTERNAL_PARAMS

#define myParam 9.8

#endif

/* EOF */

5. モデルをビルドしてコードを生成するには、Ctrl+B を押します。

生成されたヘッダー ファイル ex_param_macro.h でマクロは定義されません。代わりに、ファイルで #include が使用され、カスタム ヘッダー ファイル external_params.h がインクルードされます。

/* Includes for objects with custom storage classes */
#include "external_params.h"

ソース ファイル ex_param_macro.c に、myParam の定義が存在することをチェックするためのガードが含まれます。

#include "rtwtypes.h"
#include "external_params.h"

/*
 * Check that imported macros with storage class "ImportedDefine" are defined
 */
#ifndef myParam
#error The value of parameter "myParam" is not defined
#endif

関連するトピック