다음을 통해 공유


미리 정의 된 매크로

목록에서 미리 정의 된 ANSI Microsoft C++ 및 C 구현 매크로.

컴파일러가 ANSI C의 미리 정의 된 매크로 인식 하 고 몇 가지 더 Microsoft C++ 구현을 제공 합니다.이러한 매크로 인수를 사용 하 고 다시 정의할 수 없습니다.아래에 나열 된 미리 정의 된 매크로 중 일부가 여러 값으로 정의 됩니다.자세한 내용은 다음 표를 참조 하십시오.

ANSI 규격 미리 정의 된 매크로

매크로

설명

__DATE__

현재 소스 파일의 컴파일 날짜입니다.문자열인 날짜 리터럴 형식의 Mmm dd yyyy.월 이름 Mmm 라이브러리 함수에 의해 생성 된 날짜와 동일 asctime 시간에 선언 합니다.H.

__FILE__

현재 소스 파일의 이름입니다.__FILE__큰따옴표로 묶인 문자열로 확장 합니다.사용할 파일의 전체 경로 표시 되도록 하려면 /FC(진단 소스 코드 파일의 전체 경로).

__LINE__

현재 소스 파일의 줄 번호입니다.줄 번호를 10 진수 정수 상수입니다.변경할 수 있는 #line 지시문.

__STDC__

전적으로 준수를 나타냅니다의 ANSI C 표준.정수 상수 1만 if로 정의 된 /Za 컴파일러 옵션을 지정 하 고 C++ 코드;를 컴파일하는 그렇지 않으면 정의 되지 않습니다.

__TIME__

현재 소스 파일의 최신 컴파일 시간입니다.시간 문자열입니다 폼의 리터럴 h:mm: ss.

__TIMESTAMP__

폼에 리터럴 문자열로 표현 된 현재 소스 파일의 마지막으로 수정한 시간과 날짜가 Ddd Mmm h:mm: ss yyyy여기서 Ddd 약식된 요일입니다 및 날짜 1에서 31 사이의 정수입니다.

특정 Microsoft의 미리 정의 된 매크로

매크로

설명

_ATL_VER

ATL 버전을 정의합니다.

Visual Studio 2010, _ATL_VER 0X1000 정의 됩니다.

_CHAR_UNSIGNED

기본 char 형식 서명 되었습니다.시 정의 /J 지정 된.

__CLR_VER

응용 프로그램을 컴파일할 때 사용 되는 공용 언어 런타임의 버전을 정의 합니다.반환 값은 다음과 같은 형식으로 됩니다.

Mmmbbbbb

다음은 각 매개 변수에 대한 설명입니다.

  • M런타임의 주 버전

  • mm런타임의 부 버전

  • bbbbb빌드 번호가입니다.

// clr_ver.cpp
// compile with: /clr
using namespace System;
int main() {
   Console::WriteLine(__CLR_VER);
}

__cplusplus_cli

정의로 컴파일하여 /clr, /clr:pure, 또는 /clr:safe.200406 __Cplusplus_cli입니다.__cplusplus_cli는 번역 단위 동안 유효 합니다.

// cplusplus_cli.cpp
// compile with: /clr
#include "stdio.h"
int main() {
   #ifdef __cplusplus_cli
      printf("%d\n", __cplusplus_cli);
   #else
      printf("not defined\n");
   #endif
}

__COUNTER__

0부터 시작 하 고 또는 소스 파일의 헤더에 포함 된 소스 파일에서 사용 되는 때마다 1 씩 증가 시켜 정수를 확장 합니다.__COUNTER__미리 컴파일된 헤더를 사용할 때 상태를 기억 합니다.

다음 예제를 사용 하 여 __COUNTER__ 같은 종류의 세 가지 다른 개체에 고유 식별자를 할당 합니다.

먼저, 다음 클래스 정의 가정 합니다.생성자 매개 변수로 정수를 사용합니다.

Main에서 응용 프로그램의 세 가지 유형의 개체를 선언 exampleClass사용 하 여 __COUNTER__ 고유 식별자 매개 변수로.

__cplusplus

C + + 프로그램을 정의 합니다.

_CPPRTTI

컴파일한 코드에 대해 정의 된 /GR (런타임 형식 정보 사용).

_CPPUNWIND

컴파일한 코드에 대해 정의 된 /GX (예외 처리 활성화).

_DEBUG

정의로 컴파일하여 /LDd, /MDd, 및 /MTd.

_DLL

시 정의 /MD 또는 /MDd (다중 스레드 DLL) 지정 합니다.

__FUNCDNAME__

함수에만 사용할 수 있습니다.정의 데코레이팅된 이름 바깥쪽 함수의 문자열입니다.

__FUNCDNAME__사용 하는 경우 확장 된 /EP 또는 /P 컴파일러 옵션.

다음 예제는 __FUNCDNAME__, __FUNCSIG__, 및 __FUNCTION__ 매크로 함수 정보를 표시 합니다.

__FUNCSIG__

함수에만 사용할 수 있습니다.문자열로 바깥쪽 함수의 시그니처를 정의합니다.

__FUNCSIG__사용 하는 경우 확장 된 /EP 또는 /P 컴파일러 옵션.

호출 규칙은 64 비트 운영 체제에는 __cdecl 기본적으로.

예제는 __FUNCDNAME__를 참조하십시오.

__FUNCTION__

함수에만 사용할 수 있습니다.바깥쪽 함수 데코레이팅되지 않은 이름으로 문자열을 정의합니다.

__FUNCTION__사용 하는 경우 확장 된 /EP 또는 /P 컴파일러 옵션.

예제는 __FUNCDNAME__를 참조하십시오.

_INTEGRAL_MAX_BITS

정수 계열 형식에 대 한 최대 크기 (비트) 단위로 보고합니다.

// integral_max_bits.cpp
#include <stdio.h>
int main() {
   printf("%d\n", _INTEGRAL_MAX_BITS);
}

_M_ALPHA

12 월에 대 한 정의 ALPHA 플랫폼 (더 이상 지원 되지 않습니다).

_M_AMD64

X64 프로세서를 정의 합니다.

_M_CEE

양식을 사용 하는 컴파일에 정의 /clr (/clr:oldSyntax, /clr:safe예를 들어,).

_M_CEE_PURE

정의 사용 하는 컴파일에 /clr:pure.

_M_CEE_SAFE

정의 사용 하는 컴파일에 /clr:safe.

_M_IX86

X86 프로세서에 대 한 정의입니다.참조는 값을 _M_IX86 에 대 한 자세한 내용은 표 아래의.이 x 64에 대 한 정의 되지 않은 프로세서.

_M_IA64

에 정의 된 Itanium 프로세서 제품군의 64 비트 프로세서입니다.

_M_ARM_FP

나타내는 값을 확장 하 여 /arch 컴파일러 옵션을 사용 했습니다.

  • 30-39 경우 범위의 /arch ARM 옵션 지정, 암에 대 한 기본 아키텍처를 나타내는 사용 했습니다 (VFPv3).

  • 범위에 있는 경우 40-49 /arch:VFPv4 사용 했습니다.

  • 자세한 내용은 /arch(x86)를 참조하십시오.

_M_IX86_FP

나타내는 값을 확장 하 여 /arch 컴파일러 옵션을 사용 했습니다.

  • 0 /arch:IA32 사용 했습니다.

  • 1 /arch:SSE 사용 했습니다.

  • 2의 경우 /arch:SSE2 사용 했습니다.이 값은 기본이 됩니다. /arch 지정 하지 않았습니다.

  • 자세한 내용은 /arch(x86)를 참조하십시오.

_M_MPPC

전원 Macintosh 플랫폼 (더 이상 지원)를 정의 합니다.

_M_MRX000

MIPS 플랫폼 (더 이상 지원)를 정의 합니다.

_M_PPC

(더 이상 지원) PowerPC 플랫폼을 정의 합니다.

_M_X64

X64 프로세서를 정의 합니다.

_MANAGED

1 시에 정의 된 /clr 지정 된.

_MFC_VER

MFC 버전을 정의합니다.예를 들어, Visual Studio 2010, _MFC_VER 0x0a00로 정의 됩니다.

_MSC_BUILD

컴파일러의 버전 번호에 수정 번호 구성으로 평가합니다.수정 번호는 마침표로 구분 된 버전 번호의 네 번째 구성 요소입니다.예를 들어, Visual C++ 컴파일러의 버전 번호를 15.00.20706.01의 _MSC_BUILD 매크로 1로 계산 합니다.

_MSC_EXTENSIONS

컴파일하는 경우이 매크로 정의 /Ze 컴파일러 옵션 (기본값).정의 된 경우 해당 값은 1입니다.

_MSC_FULL_VER

주, 부, 평가 및 컴파일러의 버전 번호의 숫자 구성 요소를 작성 합니다.주 버전 번호가 마침표로 구분 된 버전 번호의 첫 번째 구성 요소, 부 수는 두 번째 구성 요소 이며 세 번째 구성 요소는 빌드 번호입니다.예를 들어, Visual C++ 컴파일러의 버전 번호를 15.00.20706.01의 _MSC_FULL_VER 매크로 150020706를 계산 합니다.형식 cl /? 컴파일러의 버전 번호를 보려면 명령줄에서.

_MSC_VER

주 버전과 부 버전 번호의 구성 요소 컴파일러의 버전 번호를 계산합니다.주 버전 번호가 마침표로 구분 된 버전 번호의 첫 번째 구성 요소 이며 부 수 두 번째 구성 요소입니다.

예를 들어, Visual C++ 컴파일러의 버전 번호를 15.00.20706.01의 _MSC_VER 매크로 평가 1500.

Visual Studio 2010, _MSC_VER 1600으로 정의 됩니다.

__MSVC_RUNTIME_CHECKS

시 정의 중 하나는 /RTC 컴파일러 옵션을 지정 합니다.

_MT

정의 경우 /MD 또는 /MDd (다중 스레드 DLL) 또는 /MT 또는 /MTd (멀티스레드)를 지정 합니다.

_NATIVE_WCHAR_T_DEFINED

시 정의 /zc: wchar_t 사용 됩니다.

_OPENMP

/Openmp으로 컴파일하면 반환 하면 Visual C++에서 구현 되는 OpenMP 사양의 날짜를 나타내는 정수를 정의 합니다.

// _OPENMP_dir.cpp
// compile with: /openmp 
#include <stdio.h> 
int main() {
   printf("%d\n", _OPENMP);
}

_VC_NODEFAULTLIB

정의 경우 /Zl 사용 됩니다. 참조 /Zl(기본 라이브러리 이름 생략) 에 대 한 자세한 내용은.

_WCHAR_T_DEFINED

시 정의 /zc: wchar_t 사용 또는 wchar_t 프로젝트에 포함 하는 시스템 헤더 파일에 정의 된 경우.

_WIN32

W i n 32와 Win64 응용 프로그램을 정의 합니다.항상 정의되어 있습니다.

_WIN64

Win64 응용 프로그램을 정의 합니다.

_Wp64

지정 하는 경우 정의 된 /w p 64.

다음 표에서 같이 컴파일러 프로세서 옵션 지정 반영 하는 전처리기 식별자 값을 생성 합니다.

_M_IX86 값

개발 환경 옵션

명령줄 옵션

결과 값

블렌드

/GB

_M_IX86 = 600(기본입니다.미래의 컴파일러 주요 프로세서에 맞게 다른 값을 내보냅니다.)

펜티엄

/ G5

_M_IX86 = 500

펜티엄 프로, 펜티엄 II, 펜티엄 III

/ G 6

_M_IX86 = 600

80386

/G3

_M_IX86 = 300

80486

/ G4

_M_IX86 = 400

참고 항목

참조

매크로 (C/C++)

전처리기 연산자

전처리기 지시문