다음을 통해 공유


#ifdef 및 #ifndef 지시문

특정 전처리기 상수 또는 매크로가 정의되었는지 여부를 결정하는 전처리기 지시문입니다.

#ifdef identifier ...
#endif
#ifndef identifier ...
#endif

매개 변수

항목 설명
identifier
확인할 상수 또는 매크로의 식별자입니다.

설명

#if를 사용할 수 있는 모든 곳에서 #ifdef 및 #ifndef 지시문을 사용할 수 있습니다. #ifdef 문은 ) 지시문과 동일합니다. 이러한 지시문은 C 또는 C++ 소스 코드에서 선언된 식별자가 아니라 #define 지시문을 사용하여 정의된 식별자의 존재 여부만 확인합니다.

이러한 지시문은 이전 버전 언어와의 호환성을 위해서만 제공됩니다. #if 지시어와 함께 정의된 연산자를 사용하는 것이 좋습니다.

#ifndef 지시문은 #ifdef에서 확인하는 조건의 반대 조건을 확인합니다. 식별자가 정의되지 않은 경우 조건은 true(0이 아님)입니다. 그렇지 않으면 조건은 false(0)입니다.

예제

식별자는 /D 옵션을 사용하여 명령줄에서 전달할 수 있습니다. /D로 최대 30개의 매크로를 지정할 수 있습니다. 정의는 명령줄에서 전달될 수 있으므로 정의가 존재하는지 여부를 확인하는 데 유용합니다. 다음 예에서는 이 동작을 사용하여 테스트 모드에서 애플리케이션을 실행할지 여부를 결정합니다.

// PROG.CPP
#ifndef test
  #define final
#endif
int main()
{
}

다음 명령을 사용하여 컴파일하면 prog.cpp가 테스트 모드에서 컴파일됩니다. 그렇지 않으면 최종 모드에서 컴파일됩니다.

CL.EXE /Dtest prog.cpp

추가 정보

전처리기 지시문(DirectX HLSL)

#if, )