#ifdef
및 #ifndef
지시문(C/C++)
#ifdef
전처리기 지시문 및 #ifndef
전처리기 지시문은 연산자와 함께 사용될 때 지시문과 동일한 효과를 #if
줍니다defined
.
구문
#ifdef
identifier
#ifndef
identifier
이러한 지시문은 다음과 같습니다.
#if defined
identifier
#if !defined
identifier
설명
어디에서나 #if
사용할 수 있는 지시문과 #ifndef
지시문을 사용할 #ifdef
수 있습니다. 이 #ifdef
identifier
문은 정의된 경우 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 전용 종료