주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

예약된 키워드

제너레이터 키워드는 내부 용도로만 사용됩니다. 모델 내에서 이를 식별자나 함수 이름으로 사용하지 마십시오. 또한 모델 내에서 C 언어의 예약어를 식별자나 함수 이름으로 사용하는 것을 피하십시오. 모델에 예약어(keyword)가 포함되어 있는 경우, 코드 생성기는 코드 내에서 식별자를 생성할 때 해당 키워드를 대체하려고 시도합니다. 코드 생성기가 예약어(keyword)를 대체할 수 없는 경우, 생성된 코드에서는 예약어를 식별자로 사용하게 되어 컴파일되지 않을 수 있습니다. 모델에 정의된 식별자와 일치하지 않는 식별자가 생성되는 것을 방지하려면, 예약어(keyword)를 식별자로 사용하지 마십시오.

C 언어의 예약어

다음은 C 언어가 정의한 예약어입니다. 코드 생성기는 이러한 키워드와 일치하는 식별자의 이름을 변경하려고 시도합니다.

autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
constfloatshortunsigned
continueforsignedvoid
defaultgotosizeofvolatile
doifstaticwhile

C++ 예약어

다음은 C++ 언어에서 C 언어의 예약어에 더해 추가로 지정하는 예약어들입니다. C++ 코드를 생성할 경우, 코드 생성기는 이러한 키워드와 일치하는 식별자의 이름을 변경하려고 시도합니다.

boolfalseprotectedtry
catchfriendpublictypeid
classinlinereinterpret_casttypename
const_castmutablestatic_castusing
deletenamespacetemplatevirtual
dynamic_castnewthiswchar_t
explicitoperatorthrow 
exportprivatetrue 

그 밖의 일반적인 예약어

코드 생성기는 C 또는 C++ 언어 사양에 포함되지 않은 일부 키워드를 대체하려고 시도합니다. 이 테이블에서 이러한 키워드 중 일부의 예시를 확인해 보세요.

absint8_TMAX_int64_TRT
arrayint16_TMAX_uint8_T*RT_MALLOC
asmint32_TMAX_uint16_T*rtInf
boolean_Tint64_TMAX_uint32_T*rtMinusInf
byte_TINTEGER_CODEMAX_uint64_TrtNaN
char_TLINK_DATA_BUFFER_SIZEMIN_int8_T*SeedFileBuffer
cint8_TLINK_DATA_STREAMMIN_int16_T*SeedFileBufferLen
cint16_TlocalBMIN_int32_T*single
cint32_TlocalCMIN_int64_TTID01EQ
creal_TlocalDWorkMODELtime_T
creal32_TlocalPMTtm
creal64_TlocalXNCSTATESuint_T
cuint8_TlocalXdisNULLuint8_T
cuint16_TlocalXdotNUMSTuint16_T
cuint32_TlocalZCEpointer_Tuint32_T
ERTlocalZCSVPROFILING_ENABLED uint64_T
fortranmatrixPROFILING_NUM_SAMPLESUNUSED_PARAMETER
HAVESTDIOMAX_int8_T*real_TUSE_RTMODEL
id_tMAX_int16_T*real32_TVCAST_FLUSH_DATA
int_TMAX_int32_T*real64_Tvector
*대체 식별자를 지정하면 예약되지 않습니다.

코드 생성, 코드 대체, 라이브러리, 키워드

개발 환경에서 코드 대체 라이브러리의 예약어 목록은 어떤 라이브러리가 레지스터되어 있는지에 따라 달라집니다. 사용 가능한 코드 대체 라이브러리 목록은 설치된 다른 제품(예: 타깃 제품)에 따라 달라지거나, Embedded Coder®를 사용하여 사용자 지정 코드 대체 라이브러리를 생성하고 레지스터했는지에 따라 달라집니다.

현재 환경에 레지스터된 라이브러리에 대한 예약된 키워드 목록을 생성하려면 다음 MATLAB® 함수를 사용하십시오:

lib_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers()

이 함수는 라이브러리 키워드 배열을 반환합니다. 입력 인수를 지정하는 것은 선택 사항입니다.

참고

현재 환경에 레지스터된 라이브러리 목록을 확인하려면 MATLAB 명령어 crviewer를 사용하십시오.

코드 생성에 사용 중인 특정 라이브러리의 예약어 목록을 생성하려면, 구성 파라미터 대화 상자의 코드 생성 > 인터페이스 패널에 있는 코드 대체 라이브러리 메뉴에 표시된 대로 해당 라이브러리 이름을 파라미터로 전달하여 함수를 호출하십시오. 예를 들면 다음과 같습니다.

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'를 나타냅니다. 만약을 대비해, 해당 키워드의 두 가지 형태 모두를 예약어로 취급해야 합니다.

사용자 지정 예약 키워드 지정

코드 생성기가 예약해 둔 키워드 외에도 사용자 지정 예약 키워드 집합을 지정할 수 있습니다. Simulink® 모델에서 외부 환경의 함수 및 변수가 알려지지 않은 경우, 코드 통합을 용이하게 하기 위해 사용자 지정 예약어를 지정하십시오.

예약된 이름 목록을 만들려면 구성 파라미터 대화 상자를 엽니다. Code Generation > Identifiers 패널에서 예약된 이름 필드에 키워드를 입력하십시오.

모델에 MATLAB Function 또는 Stateflow® 블록이 포함되어 있는 경우, Code Generation > Identifiers 패널에서 시뮬레이션 타깃과 동일한 예약 이름 사용를 선택하면 코드 생성 과정에서 해당 블록에 대해 지정된 예약된 이름이 사용됩니다.

프로그래밍 방식으로 예약어 확인하기

예약어 목록은 방대하고 지속적으로 변경되므로, 문서에서는 이를 모두 나열할 수 없습니다. 코드 생성기가 대체하려고 시도하는 키워드 목록을 프로그래밍 방식으로 가져오려면, MATLAB 명령 창에서 다음 명령을 실행하십시오:

RTW.reservedIdentifiers()
이 명령어는 예약된 식별자 목록이 포함된 구조체를 반환합니다. 반환 값에 대한 자세한 내용은 RTW.reservedIdentifiers를 참조하십시오.

Simulink Check™ 라이선스를 보유하고 있다면, Check model object names (Simulink Check) 검사를 통해 모델이 예약된 이름을 사용하지 않는지 확인할 수 있습니다.

참고 항목