Если у вас есть лицензия 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';