#undef 지시문(C/C++)

전에 #define으로 만든 이름을 제거(정의 해제)합니다.

구문

#undef 식별자

설명

#undef 지시문은 식별자의 현재 정의를 제거합니다. 따라서 후속 식별자 발생은 전처리기에서 무시됩니다. #undef 사용하여 매크로 정의를 제거하려면 매개 변수 목록이 아닌 매크로 식별자만 지정합니다.

#undef 지시문을 이전 정의가 없는 식별자에 적용 할 수도 있습니다. 그러면 식별자가 정의되지 않습니다. 매크로 대체는 #undef 문 내에서 수행되지 않습니다.

#undef 지시문은 일반적으로 지시문과 #define 페어링되어 식별자가 특별한 의미를 갖는 원본 프로그램에서 영역을 만듭니다. 예를 들어, 소스 프로그램의 특정한 함수가 매니페스트 상수를 사용하여 프로그램의 나머지 부분에 영향을 주지 않는 환경 관련 값을 정의할 수 있습니다. 또한 #undef 지시문은 소스 프로그램의 조건부 컴파일을 제어하기 위해 지시문과 함께 #if 작동합니다. 자세한 내용은 #if, #elif, #else 및 #endif 지시문을 참조하세요.

다음 예제 에서 #undef 지시문은 기호 상수 및 매크로의 정의를 제거합니다. 매크로의 식별자만 제공됩니다.

#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD

Microsoft 전용

이 옵션을 사용하여 /U 명령줄에서 매크로를 정의하지 않은 다음 정의되지 않은 매크로 이름을 사용할 수 있습니다. 이 명령을 실행하는 효과는 파일의 시작 부분에 있는 매크로 이름 문 시퀀스에 #undef해당합니다.

Microsoft 전용 종료

참고 항목

전처리기 지시문