| |||
| Home > ARM 컴파일러 참조 > 사전 정의된 매크로 | |||
Table 3.3은 C 및 C++에서 ARM 컴파일러가 사전 정의하는 매크로 이름을 나열합니다. 값 필드가 빈 곳에서는 심볼만 정의됩니다.
Table 3.3. 사전 정의된 매크로
| 이름 | 값 | 정의되는 경우 |
|---|---|---|
__arm__ | – | ARM 컴파일러에 항상 정의되는 매크로 이름으로,
Note이 매크로는 armcpp, tcc 및 tcpp 명령어를 사용하여 ARM 컴파일러를 호출해도 정의됩니다. |
__ARMCC_VERSION | ver | 항상 정의됩니다. 10진수이며 릴리스가 바뀔 때마다 증가합니다. 포맷은
현재 릴리스의 값은 Table 3.4를 참조하십시오. Note이것을 사용하여 RVCT와 |
__APCS_ADSABI | – |
|
__APCS_INTERWORK | – |
|
__APCS_ROPI | – |
|
__APCS_RWPI | – |
|
__APCS_FPIC | – |
|
__ARRAY_OPERATORS | – | C++ 컴파일러 모드에서 배열 새로 만들기 및 삭제를 사용 가능하도록 지정합니다. |
__BASE_FILE__ | name | 항상 정의됩니다. |
__BIG_ENDIAN | – | 빅엔디안 타겟에 대해 컴파일할 경우 |
_BOOL | – | C++ 컴파일러 모드에서 bool이 키워드임을 지정할 경우 |
__cplusplus | – | C++ 컴파일러 모드에서 |
__CC_ARM | 1 | 언제든지, Note이 매크로는 armcpp, tcc 및 tcpp 명령어를 사용하여 ARM 컴파일러를 호출해도 정의됩니다. |
__DATE__ | date | 항상 정의됩니다. |
__EDG__ | – | 항상 정의됩니다. |
__EDG_IMPLICIT_USING_STD | – | C++ 컴파일러 모드에서, |
__EDG_VERSION__ | – | EDG 프런트 엔드의 버전 번호를 나타내는 정수 값으로 항상 설정됩니다.
예를 들어, 버전 36은 EDG 프런트 엔드의 버전 번호는 RVCT나 RVDS 버전 번호와 반드시 일치할 필요는 없습니다. |
__EXCEPTIONS | 1 | C++ 모드에서, |
__FEATURE_SIGNED_CHAR | – |
|
__FILE__ | name | 항상 문자열 리터럴로 정의됩니다. |
__FP_FAST | – |
|
__FP_FENV_EXCEPTIONS | – |
|
__FP_FENV_ROUNDING | – |
|
__FP_IEEE | – |
|
__FP_INEXACT_EXCEPTION | – |
|
__GNUC__ | ver |
현재 릴리스의 값은 Table 3.4를 참조하십시오. |
__GNUC_MINOR__ | ver |
현재 릴리스의 값은 Table 3.4를 참조하십시오. |
__IMPLICIT_INCLUDE | – |
|
__LINE__ | num | 항상 설정됩니다. 이 매크로를 포함하는 코드 라인의 소스 라인 번호입니다. |
__MODULE__ | mod |
|
__NO_INLINE__ | – | GNU 모드에서 |
__OPTIMISE_LEVEL | num |
|
__OPTIMISE_SPACE | – |
|
__OPTIMISE_TIME | – |
|
__OPTIMIZE__ | – | GNU 모드에서 |
__OPTIMIZE_SIZE__ | – | GNU 모드에서 |
__PLACEMENT_DELETE | – | C++ 컴파일러에서 배치 삭제가 사용 가능하도록 지정합니다. 이것은 예외를 사용할 경우에만 관련됩니다. |
__RTTI | – | C++ 컴파일러 모드에서 RTTI가 사용 가능할 경우 |
__sizeof_int | 4 |
|
__sizeof_long | 4 |
|
__sizeof_ptr | 4 |
|
__SOFTFP__ | – | 소프트웨어 부동 소수점 호출 표준과 라이브러리를 사용하도록 컴파일할
경우. ARM 또는 Thumb에서 |
__STDC__ | – | 모든 컴파일러 모드 |
__STDC_VERSION__ | – | 표준 버전 정보 |
__STRICT_ANSI__ | – |
|
__TARGET_ARCH_ARM | num | 타겟 CPU의 ARM 기본 아키텍처의 수(컴파일러가 ARM에 대해 컴파일하거나 Thumb에 대해 컴파일하거나 관계 없음) |
__TARGET_ARCH_THUMB | num | 타겟 CPU의 Thumb 기본 아키텍처의 수(컴파일러가 ARM에 대해 컴파일하거나 Thumb에 대해 컴파일하거나 관계 없음). 타겟이 Thumb을 지원하지 않을 경우 이 값은 0으로 정의됩니다. |
__TARGET_ARCH_ | – |
|
__TARGET_CPU_ | – |
타겟
아키텍처를 지정할 경우, 프로세서
이름에 하이픈(-) 문자가 포함되어 있을 경우, 이 문자는 밑줄로 매핑됩니다( |
__TARGET_FEATURE_DOUBLEWORD | – | 타겟 아키텍처가 |
__TARGET_FEATURE_DSPMUL | – | ARMv5TE에서와 같이 DSP 승수를 사용할 수 있는 경우 |
__TARGET_FEATURE_MULTIPLY | – | 타겟 아키텍처가 long 곱하기 명령어 |
__TARGET_FEATURE_DIVIDE | – | 타겟 아키텍처가 하드웨어 나누기 명령어(즉, ARMv7-M 또는 ARMv7-R)를 지원할 경우 |
__TARGET_FEATURE_THUMB | – | 타겟 아키텍처가 Thumb(ARMv4T 이상)을 지원할 경우 |
__TARGET_FPU_ | – | 다음 중 하나가 FPU 사용을 나타내도록 설정됩니다.
또한, FPU 옵션에 대한 자세한 내용은 타겟 프로세서 또는 아키텍처 지정에서 |
__thumb__ | – | 컴파일러가 Thumb 모드일 경우. 즉, 명령 행에서 Note
|
__TIME__ | time | 항상 정의됩니다. |
__VERSION__ | ver |
현재 릴리스의 값은 Table 3.4를 참조하십시오. |
_WCHAR_T | – | C++ 컴파일러 모드에서 wchar_t가 키워드임을 지정할 경우 |
Table 3.4는 현재 릴리스의 컴파일러의 사전 정의된 매크로의 값을 나열합니다. 이 값들은 설치된 프로그램을 업그레이드할 경우 변경될 수 있습니다.
Table 3.4. 현재 릴리스의 매크로 값
| 이름 | 값 |
|---|---|
__ARMCC_VERSION | 릴리스가 바뀔 때마다 값이 증가하도록 보장하며, 포맷은
제공된 예제의 결과는 300503입니다. |
__GNUC__ | GNU 모드의 주 버전 = 3 |
__GNUC_MINOR__ | GNU 모드의 부 버전 = 3 |
__VERSION__ | GNU 모드의 현재 버전 = |
매크로 명령 행 옵션을 지정하면 컴파일러에서 다음 순서로 매크로를 정의하고 정의를 해제합니다.
컴파일러 사전 정의 매크로
-D을
사용하여 명시적으로 정의한 매크로name
-U을
사용하여 명시적으로 정의가 해제된 매크로name
자세한 내용은 선처리 프로세서 옵션 설정을 참조하십시오.