/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 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.
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
}
TEST defined 1