マクロ定義 (#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.h
で myParam
がマクロとして定義されます。
/* 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