Main Content

Reserved Keywords

Generator keywords are reserved for internal use. Do not use them in models as identifiers or function names. Also avoid using C reserved keywords in models as identifiers or function names. If your model contains reserved keywords, the code generator attempts to replace those keywords when it generates identifiers in the code. If the code generator cannot replace the reserved keyword, then the generated code uses reserved keywords as identifiers and might not compile. To avoid generating identifiers that do not match identifiers in your model, do not use reserved keywords as identifiers.

Note

你可以register additional reserved identifiers in the Simulink®环境。的更多信息, seeSpecify Reserved Names for Generated Identifiers.

C Reserved Keywords

These are the reserved keywords that the C language specifies. The code generator attempts to rename identifiers that match these keywords.

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

C++ Reserved Keywords

These are the reserved keywords that the C++ language specifies in addition to the C reserved keywords. If you generate C++ code, the code generator attempts to rename identifiers that match these keywords.

bool false protected try
catch friend public typeid
class inline reinterpret_cast typename
const_cast mutable static_cast using
delete namespace template virtual
dynamic_cast new this wchar_t
explicit operator throw
export private true

Other Common Reserved Keywords

The code generator attempts to replace some keywords that are not part of the C or C++ language specification. See examples of some of these keywords in this table.

abs int16_T MAX_uint8_T* RT_MALLOC
asm int32_T MAX_uint16_T* rtInf
boolean_T int64_T MAX_uint32_T* rtMinusInf
byte_T INTEGER_CODE MAX_uint64_T rtNaN
char_T LINK_DATA_BUFFER_SIZE MIN_int8_T* SeedFileBuffer
cint8_T LINK_DATA_STREAM MIN_int16_T* SeedFileBufferLen
cint16_T localB MIN_int32_T* single
cint32_T localC MIN_int64_T TID01EQ
creal_T localDWork MODEL time_T
creal32_T localP MT tm
creal64_T localX NCSTATES uint_T
cuint8_T localXdis NULL uint8_T
cuint16_T localXdot NUMST uint16_T
cuint32_T localZCE pointer_T uint32_T
ERT localZCSV PROFILING_ENABLED uint64_T
fortran matrix PROFILING_NUM_SAMPLES UNUSED_PARAMETER
HAVESTDIO MAX_int8_T* real_T USE_RTMODEL
id_t MAX_int16_T* real32_T VCAST_FLUSH_DATA
int_T MAX_int32_T* real64_T vector
int8_T MAX_int64_T RT
*Not reserved if you specify a replacement identifier.

Code Generation Code Replacement Library Keywords

The list of code replacement library reserved keywords for your development environment varies depending on which libraries are registered. The list of available code replacement libraries varies depending on other installed products (for example, a target product), or if you used Embedded Coder®to create and register custom code replacement libraries.

To generate a list of reserved keywords for libraries currently registered in your environment, use this MATLAB®function:

lib_ids= RTW.TargetRegistry.getInstance.getTflReservedIdentifiers()

This function returns an array of library keywords. Specifying the input argument is optional.

Note

To list the libraries currently registered in your environment, use the MATLAB commandcrviewer.

To generate a list of reserved keywords for a specific library that you are using to generate code, call the function passing the name of the library as displayed in the代码替换库menu on theCode Generation>Interfacepane of the Configuration Parameters dialog box. For example,

lib_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers('GNU C99 extensions')

Here is a partial example of the function output:

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

Note

Some of the returned keywords appear with the suffix$N, for example,'rt_atan2$N'.$Nexpands into the suffix_snfonly if nonfinite numbers are supported. For example,'rt_atan2$N'represents'rt_atan2_snf'if nonfinite numbers are supported and'rt_atan2'if nonfinite numbers are not supported. As a precaution, you should treat both forms of the keyword as reserved.