/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 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트 속성 페이지 대화 상자를 엽니다. 자세한 내용은 방법: 프로젝트 속성 페이지 열기을 참조하십시오.
왼쪽 창에서 **C/C + +**와 전처리기를 차례로 클릭합니다.
오른쪽 창에서 전처리기 정의 속성을 수정합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- PreprocessorDefinitions를 참조하십시오.
예제
// 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
}
참고 항목
참조
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2010년 7월 |
하나의 "%" 전처리 기호를 정의하기 위해 지정해야 하는 두 개의 "%%" 기호를 추가했습니다. |
콘텐츠 버그 수정 |