Если у вас есть лицензия 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; } |
На странице Generate Code, чтобы открыть диалоговое окно Generate, кликают по стреле Generate.
Установите Build type на одно из следующего:
Source Code
Static Library (.lib)
Dynamic Library (.dll)
Executable (.exe)
Нажмите More Settings.
На вкладке All Settings, под Advanced, устанавливает Casting mode на одно из следующих значений:
Nominal
Standards Compliant
Explicit
Создайте объект настройки кода для 'lib'
, 'dll'
, или 'exe'
. Например:
cfg = coder.config('lib','ecoder',true); % or dll or exe
Установите CastingMode
свойство к одному из следующих значений:
'Nominal'
'Standards'
'Explicit'
Например:
cfg.CastingMode = 'Standards';