Управляйте типами данных в сгенерированном коде

Если у вас есть 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 Coder

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

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

    • Source Code

    • Static Library (.lib)

    • Dynamic Library (.dll)

    • Executable (.exe)

  3. Нажмите More Settings.

  4. На вкладке All Settings под Advanced установите Casting mode одно из следующих значений:

    • 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';
    

См. также

Похожие темы