メインコンテンツ

生成コードのデータ型キャストの制御

Embedded Coder® ライセンスをお持ちの場合は、MATLAB® コードから生成される C/C++ コード内のデータ型キャストを制御できます。以下のいずれかのキャスト モードを指定できます。

キャスト モード説明
ノミナル

ノミナル キャスト モードが既定のキャスト モードです。生成された C/C++ コードは、既定の C コンパイラ データ型キャストを使用します。特別なデータ型情報要件がない場合は、このオプションを選択します。以下に、ノミナル キャスト モードを使用して生成されたコードの例を示します。

short addone(short x)
{
  int i;
  i = x + 1;
  if (i > 32767) {
    i = 32767;
  }

  return (short)i;
}
標準準拠

生成された C/C++ コードには、MISRA™ 規格に準拠したデータ型キャストが含まれます。MISRA データ型キャストにより、アドレスでの演算や代入などの一般的な MISRA 規格違反がなくなります。これにより、10.1、10.2、10.3、および 10.4 の違反が削減されます。以下に、規格に準拠したキャスト モードを使用して生成されたコードの例を示します。

short addone(short x)
{
  int i;
  i = (int)x + (int)1;
  if (i > (int)32767) {
    i = (int)32767;
  }

  return (short)i;
}
明示的

生成された C/C++ コードには明示的なデータ型キャストが含まれます。明示的なデータ型キャストは、変数が使用するメモリの量と、変数を使用する計算の精度レベルに関する情報を提供します。以下に、明示的なキャスト モードを使用して生成されたコードの例を示します。

short addone(short x)
{
  int i;
  i = (int)x + 1;
  if (i > 32767) {
    i = 32767;
  }

  return (short)i;
}

MATLAB Coder アプリを使用したキャスト モードの指定

  1. [ビルド タイプ] を次のいずれかに設定します。

    • スタティック ライブラリ (.lib)

    • ダイナミック ライブラリ (.dll)

    • 実行可能ファイル (.exe)

  2. [設定] をクリックします。

  3. [キャスト モード] を次のいずれかの値に設定します。

    • ノミナル

    • 標準準拠

    • 明示的

コマンド ライン インターフェイスを使用したキャスト モードの指定

  1. 'lib''dll'、または 'exe' のコード構成オブジェクトを作成します。以下に例を示します。

    cfg = coder.config('lib','ecoder',true); % or dll or exe
    

  2. CastingMode プロパティを次のいずれかの値に設定します。

    • 'Nominal'

    • 'Standards'

    • 'Explicit'

    以下に例を示します。

    cfg.CastingMode = 'Standards';
    

参考

トピック