exponenta event banner

Команды типа управляющих данных в сгенерированном коде

Если у вас есть лицензия Embedded Coder ®, вы можете управлять изменениями типа данных в коде C/C + +, созданном из кода MATLAB ®. Можно указать один из следующих режимов литья.

Режим литьяОписание
Номинал

Номинальный режим литья является режимом литья по умолчанию. Сгенерированный код 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

  1. На странице «Создать код», чтобы открыть диалоговое окно «Создать», щелкните стрелку «Создать».

  2. Установите один из следующих типов построения:

    • Source Code

    • Static Library (.lib)

    • Dynamic Library (.dll)

    • Executable (.exe)

  3. Щелкните Дополнительные параметры.

  4. На вкладке Все настройки (All Settings) в разделе Дополнительно (Advanced) установите режим литья в одно из следующих значений.

    • Nominal

    • Standards Compliant

    • Explicit

Определение режима литья с помощью интерфейса командной строки

  1. Создание объекта конфигурации кода для 'lib', 'dll', или 'exe'. Например:

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

  2. Установите CastingMode одному из следующих значений:

    • 'Nominal'

    • 'Standards'

    • 'Explicit'

    Например:

    cfg.CastingMode = 'Standards';
    

См. также

Связанные темы