Ключевые слова генератора резервируются для внутреннего пользования. Не используйте их в моделях как идентификаторы или имена функций. Также избегайте использования зарезервированных слов C в моделях как идентификаторы или имена функций. Если ваша модель содержит зарезервированные слова, генерация кода не завершается, и сообщение об ошибке появляется. Чтобы исправить ошибку, измените свою модель, чтобы использовать идентификаторы или имена, которые не резервируются.
Если вы используете генератор кода, чтобы произвести Код С++, ваша модель не должна содержать Зарезервированные слова для Генерации кода, ни Зарезервированные слова C++.
Можно указать дополнительные зарезервированные идентификаторы в среде Simulink®. Для получения дополнительной информации смотрите, Задают Зарезервированные Имена для Сгенерированных Идентификаторов.
auto | double | int | struct |
break | else | long | switch |
case | enum | register | typedef |
char | extern | return | union |
const | float | short | unsigned |
continue | for | signed | void |
default | goto | sizeof | volatile |
do | if | static | while |
catch | friend | protected | try |
class | inline | public | typeid |
const_cast | mutable | reinterpret_cast | typename |
delete | namespace | static_cast | using |
dynamic_cast | new | template | virtual |
explicit | operator | this | wchar_t |
export | private | throw |
abs | int8_T | MAX_uint8_T * | rtInf |
asm | int16_T | MAX_uint16_T * | rtMinusInf |
bool | int32_T | MAX_uint32_T * | rtNaN |
boolean_T | int64_T | MAX_uint64_T | SeedFileBuffer |
byte_T | INTEGER_CODE | MIN_int8_T * | SeedFileBufferLen |
char_T | LINK_DATA_BUFFER_SIZE | MIN_int16_T * | single |
cint8_T | LINK_DATA_STREAM | MIN_int32_T * | TID01EQ
|
cint16_T | localB | MIN_int64_T | time_T |
cint32_T | localC | MODEL | true |
creal_T | localDWork | MT | uint_T |
creal32_T | localP | NCSTATES | uint8_T |
creal64_T | localX | NULL | uint16_T |
cuint8_T | localXdis | NUMST | uint32_T |
cuint16_T | localXdot | pointer_T | uint64_T |
cuint32_T | localZCE | PROFILING_ENABLED
| UNUSED_PARAMETER |
ERT | localZCSV | PROFILING_NUM_SAMPLES | USE_RTMODEL
|
false | matrix | real_T | VCAST_FLUSH_DATA |
fortran | MAX_int8_T * | real32_T | vector |
HAVESTDIO | MAX_int16_T * | real64_T | |
id_t | MAX_int32_T * | RT | |
int_T | MAX_int64_T | RT_MALLOC | |
*Не зарезервированный, если вы задаете заменяющий идентификатор. |
Список заменяющих зарезервированных слов библиотеки кода для вашей среды разработки отличается, в зависимости от которого указаны библиотеки. Список доступных заменяющих библиотек кода отличается в зависимости от других установленных продуктов (например, целевого продукта), или если вы использовали Embedded Coder®, чтобы создать и указать заменяющие библиотеки пользовательского кода.
Чтобы сгенерировать список зарезервированных слов для библиотек, в настоящее время указанных в вашей среде, используйте следующую функцию MATLAB®:
lib_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers()
Эта функция возвращает массив ключевых слов библиотеки. Определение входного параметра является дополнительным.
Чтобы перечислить библиотеки, в настоящее время указанные в вашей среде, используйте команду MATLAB crviewer
.
Чтобы сгенерировать список зарезервированных слов для определенной библиотеки, которой вы пользуетесь, чтобы сгенерировать код, вызовите функцию, передающую имя библиотеки, как отображено в меню Code replacement library на Code Generation> панель Interface диалогового окна Configuration Parameters. Например,
lib_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers('GNU C99 Extensions')
Вот частичный пример функционального вывода:
>> lib_ids = ... RTW.TargetRegistry.getInstance.getTflReservedIdentifiers('GNU C99 Extensions') lib_ids = 'exp10' 'exp10f' 'acosf' 'acoshf' 'asinf' 'asinhf' 'atanf' 'atanhf' ... 'rt_lu_cplx' 'rt_lu_cplx_sgl' 'rt_lu_real' 'rt_lu_real_sgl' 'rt_mod_boolean' 'rt_rem_boolean' 'strcpy' 'utAssert'
Некоторые возвращенные ключевые слова появляются с суффиксным $N
, например, 'rt_atan2$N'
. $N
расширяется в суффиксный _snf
, только если поддерживаются неличные числа. Например, 'rt_atan2$N'
представляет 'rt_atan2_snf'
, если неличные числа поддерживаются и 'rt_atan2'
, если неличные числа не поддержаны. Предусмотрительно, необходимо обработать обе формы ключевого слова, как зарезервировано.