このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
列挙型は名前付きの値の固定セットを表します。列挙型を使用すると,MATLAB®コードと生成されるC / c++コードが読みやすくなります。たとえば,比较字符串
を使用する代わりに,生成されたコードでif (x ==红色)
などのコードとの等価性をテストできます。
コード生成で列挙型を使用する場合,次の制限に従います。
列挙型クラスのメソッドの呼び出しはサポートされません。
字符串または文字ベクトルを列挙型のコンストラクターに渡すことはサポートされません。
列挙型クラスはint8
、uint8
、int16
、uint16
またはint32
のいずれかの基本データ型から派生されなければなりません。コード生成用列挙型の定義を参照してください。
列挙型に対しては限られた一連の操作のみを使用できます。列挙型で実行可能な演算を参照してください。
コード生成用に列挙型をサポートする関数で列挙型を使用します。列挙型をサポートするMATLABツールボックス関数を参照してください。
コード生成では,列挙型クラスはint8
、uint8
、int16
、uint16
またはint32
のいずれかの基本データ型から派生されなければなりません。以下に例を示します。
classdefPrimaryColors < int32枚举红色(1),蓝色(2),黄色(4)结束结束
生成されるC / c++コード内の列挙型のサイズを基本データ型を使用して制御できます。以下を行うことができます。
列挙型を固定サイズの整数で表し,別のターゲットへの移植を可能にします。
メモリ使用量を削減します。
レガシコードと連動させます。
会社標準に一致させます。
基本データ型は,生成されたC / c++コード内の列挙型の表現を決定します。
基本データ型がint32
の場合,コードジェネレーターはCの列挙型を生成します。このMATLAB列挙型定義について考えます。
classdefLEDcolor < int32枚举绿(1),红(2)结束结束
この列挙型の定義は次のCコードになります。
enum led颜色{绿色= 1,红色};typedef enum led颜色;
int32
以外の組み込みの整数基本データ型の場合,コードジェネレーターは列挙型に対して类型定义
ステートメントを生成し,列挙値に対して#定义
ステートメントを生成します。このMATLAB列挙型定義について考えます。
classdefLEDcolor < int16枚举绿(1),红(2)结束结束
typedef短LEDcolor;#define GREEN ((LEDcolor)1) #define RED ((LEDcolor)2)
类型定义
ステートメントのCの型は以下に依存します。
ハードウェア実行オブジェクトまたはプロジェクト設定の製品ハードウェアで定義されている整数のサイズ。编码器。HardwareImplementation
を参照してください。
生成されたコード内で組み込みのCの型を使用するか,MathWorks®のtypedefを使用するかを決定する設定。生成コードで使用されるデータ型の指定および生成コードの型へのMATLAB型のマッピングを参照してください。
コード生成では,次の表に示す列挙型の演算に制限されます。
演算 | 例 | メモ |
---|---|---|
代入演算子: |
发送朴通= LEDcolor。绿色xoff = led颜色。红色的 |
- - - - - - |
関係演算子: |
发送朴通= =发送葡开 |
コード生成では, |
キャスト演算 |
双(LEDcolor.RED) |
- - - - - - |
文字配列または字符串への変換 |
y = char (LEDcolor.RED);日元=投(LEDcolor.RED,“字符”);y2 =字符串(LEDcolor.RED); |
|
インデックス演算 |
m = [1 2] n = LEDcolor(m) p = n(LEDcolor. green) |
- - - - - - |
制御フローステートメント:如果开关,虽然 |
if state == sysMode. sys . sys . sys . sys . sys . sys . sys . sys . sys . sys。ON led = LEDcolor.GREEN;else led = LEDcolor.RED;结束 |
- - - - - - |
コード生成では,次のMATLABツールボックス関数で列挙型を使用できます。