다음을 통해 공유


/D(전처리기 정의)

업데이트: 2010년 7월

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

/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

명령 프롬프트에서 전처리 기호를 정의하면 컴파일러 구문 분석 규칙 뿐만 아니라 셸 구문 분석 규칙도 수행하는 것이 좋습니다. 예를 들어, 프로그램에 하나의 백분율 기호 전처리 기호(%)를 정의하려면 두 개의 백분율 기호 문자(%%)를 명령줄에 지정합니다. 하나의 1퍼센트 기호만 지정하는 경우 구문 분석 오류가 생성됩니다.

CL /DTEST=%% TEST.C

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

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

  2. 왼쪽 창에서 **C/C + +**와 전처리기를 차례로 클릭합니다.

  3. 오른쪽 창에서 전처리기 정의 속성을 수정합니다.

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

예제

// 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
}
  

참고 항목

참조

컴파일러 옵션

컴파일러 옵션 설정

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

#undef Directive (C/C++)

#define Directive (C/C++)

변경 기록

날짜

변경 내용

이유

2010년 7월

하나의 "%" 전처리 기호를 정의하기 위해 지정해야 하는 두 개의 "%%" 기호를 추가했습니다.

콘텐츠 버그 수정