生成コードのデータ型キャストの制御
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 アプリを使用したキャスト モードの指定
[ビルド タイプ] を次のいずれかに設定します。
スタティック ライブラリ (.lib)ダイナミック ライブラリ (.dll)実行可能ファイル (.exe)
[設定] をクリックします。
[キャスト モード] を次のいずれかの値に設定します。
ノミナル標準準拠明示的
コマンド ライン インターフェイスを使用したキャスト モードの指定
'lib'、'dll'、または'exe'のコード構成オブジェクトを作成します。以下に例を示します。cfg = coder.config('lib','ecoder',true); % or dll or exe
CastingModeプロパティを次のいずれかの値に設定します。'Nominal''Standards''Explicit'
以下に例を示します。
cfg.CastingMode = 'Standards';