Если у вас есть лицензия Embedded Coder®, можно управлять бросками типа данных в коде C/C++, сгенерированном из кода MATLAB®. Можно задать один из следующих режимов кастинга.
Кастинг режима | Описание |
---|---|
Номинал |
Номинальный режим кастинга является режимом кастинга значения по умолчанию. Сгенерированный код C/C++ использует кастинг типа данных компилятора C по умолчанию. Когда вы не имеете требований информации о специальном типе данных, выбираете эту опцию. Вот пример кода, сгенерированного с помощью номинального режима кастинга: short addone(short x) { int i0; i0 = x + 1; if (i0 > 32767) { i0 = 32767; } return (short)i0; } |
Совместимые стандарты |
Сгенерированный код C/C++ имеет броски типа данных, которые соответствуют стандартам MISRA®. Кастинг типа данных MISRA устраняет общие стандартные нарушения MISRA, включая адресную арифметику и присвоение. Это уменьшает 10.1, 10.2, 10.3, и 10,4 нарушений. Вот пример кода, сгенерированного с помощью совместимого стандартами режима кастинга: short addone(short x) { int i0; i0 = (int)x + (int)1; if (i0 > (int)32767) { i0 = (int)32767; } return (short)i0; } |
Явный |
Сгенерированный код C/C++ имеет явные броски типа данных. Явные броски типа данных предоставляют информацию об объеме памяти что переменное использование и уровень точности для вычислений с помощью переменной. Вот пример кода, сгенерированного с помощью явного режима кастинга: short addone(short x) { int i0; i0 = (int)x + 1; if (i0 > 32767) { i0 = 32767; } return (short)i0; } |
На странице 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';