Share via


#ifdef#ifndef 지시문(C/C++)

#ifdef 전처리기 지시문 및 #ifndef 전처리기 지시문은 연산자와 함께 사용될 때 지시문과 동일한 효과를 #if 줍니다defined.

구문

#ifdef identifier
#ifndef identifier

이러한 지시문은 다음과 같습니다.

#if defined identifier
#if !defined identifier

설명

어디에서나 #if 사용할 수 있는 지시문과 #ifndef 지시문을 사용할 #ifdef 수 있습니다. 이 #ifdefidentifier 문은 정의된 경우 identifier#if 1 동일합니다. 정의되지 않았거나 지시문에 #if 0 의해 정의되지 않은 경우 identifier#undef 동일합니다. 이러한 지시문은 C 또는 C++ 소스 코드에서 선언된 식별자가 아니라 #define으로 정의된 식별자가 있는지 여부만 검사합니다.

이러한 지시문은 이전 버전 언어와의 호환성을 위해서만 제공됩니다. defined()identifier지시문과 함께 #if 사용되는 상수 식이 선호됩니다.

지시문은 #ifndef 검사 조건과 반대되는 검사#ifdef. 식별자가 정의되지 않았거나 정의가 제거된 #undef경우 조건은 true(0이 아닌 경우)입니다. 그렇지 않으면 조건은 false(0)입니다.

Microsoft 전용

옵션을 사용하여 /D 명령줄에서 식별자를 전달할 수 있습니다. 를 사용하여 최대 30개의 매크로를 /D지정할 수 있습니다.

명령 #ifdef 줄에서 정의를 전달할 수 있으므로 이 지시문은 정의가 존재하는지 여부를 검사 데 유용합니다. 예시:

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

Microsoft 전용 종료

참고 항목

전처리기 지시문