다음을 통해 공유


/D(전처리기 정의)

업데이트: 2007년 11월

소스 파일에 대한 전처리 기호를 정의합니다.

/Dname[= | # [{string | number}] ]

설명

이 기호를 #if 또는 #ifdef와 함께 사용하여 조건에 따라 소스를 컴파일할 수 있습니다. 기호 정의는 소스에서 기호를 다시 정의하거나 #undef 지시문을 사용하여 소스에서 기호 정의를 해제할 때까지 유효합니다.

/D를 지정하면 소스 파일의 시작 부분에 #define 지시문을 사용할 때와 그 결과가 거의 비슷합니다. 그러나 /D는 명령줄에서 따옴표를 없애는 반면 #define은 따옴표를 유지합니다.

기호와 관련된 값은 기본적으로 1입니다. 즉, /DTEST/DTEST=1과 같습니다. 다음 예제에서 TEST는 1을 출력하도록 정의되어 있습니다.

**/Dname=**을 사용하여 컴파일하면 기호와 연결된 값이 만들어지지 않습니다. 기호를 사용해 조건에 따라 코드를 컴파일할 수 있는 경우에 한해서는 기호가 어떤 값으로도 계산되지 않습니다. 예를 들어, 샘플 프로그램에서 **/DTEST=**을 사용하여 컴파일하면 컴파일 오류가 발생합니다. 이 동작은 값을 사용하거나 사용하지 않고 #define을 사용할 때의 동작과 비슷합니다.

다음 명령은 TEST.c에서 DEBUG 기호를 정의합니다.

CL /DDEBUG  TEST.C

다음 명령은 TEST.c에 있는 모든 __far 키워드를 제거합니다.

CL /D__far=  TEST.C

등호를 포함하는 문자열에 CL 환경 변수를 설정할 수 없습니다. /D와 CL 환경 변수를 함께 사용하려면 다음과 같이 등호 대신에 숫자 기호(#)를 지정해야 합니다.

SET CL=/DTEST#0

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.

  2. C/C++ 폴더를 클릭합니다.

  3. 전처리기 속성 페이지를 클릭합니다.

  4. 전처리기 정의 속성을 수정합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면

예제

// cpp_D_compiler_option.cpp
// compile with: /DTEST
#include <stdio.h>

int main( )
{
    #ifdef TEST
        printf_s("TEST defined %d\n", TEST);
    #else
        printf_s("TEST not defined\n");
    #endif
}

TEST defined 1

참고 항목

참조

컴파일러 옵션

컴파일러 옵션 설정

/U, /u(기호 정의 해제)

The #undef Directive

The #define Directive