다음을 통해 공유


warning pragma

컴파일러 경고 메시지의 동작을 선택적으로 수정할 수 있습니다.

구문

#pragma warning(
warning-specifier : warning-number-list
 [; warning-specifier : warning-number-list ... ] )
#pragma warning( push [ , n ] )
#pragma warning( pop )

설명

다음과 같은 경고 지정자 매개 변수를 사용할 수 있습니다.

경고 지정자 의미
1, 2, 34 지정된 수준에 지정된 경고를 적용합니다. 또한 기본적으로 꺼져 있는 지정된 경고를 켭니다.
default 경고 동작을 기본값으로 다시 설정합니다. 또한 기본적으로 꺼져 있는 지정된 경고를 켭니다. 문서화된 기본 수준에서 경고가 생성됩니다.

자세한 내용은 기본적으로 꺼져 있는 컴파일러 경고를 참조하세요.
disable 지정된 경고 메시지를 발행하지 마세요.
error 지정된 경고를 오류로 보고합니다.
once 지정된 메시지를 한 번만 표시합니다.
suppress 스택의 pragma 현재 상태를 푸시하고, 다음 줄에 대해 지정된 경고를 사용하지 않도록 설정한 다음, 상태가 다시 설정되도록 경고 스택을 pragma 팝합니다.

다음 코드 문은 매개 변수에 warning-number-list 여러 경고 번호를 포함할 수 있으며 동일한 pragma 지시문에 여러 warning-specifier 매개 변수를 지정할 수 있음을 보여 줍니다.

#pragma warning( disable : 4507 34; once : 4385; error : 164 )

이 지시문은 다음 코드와 기능적으로 동일합니다.

// Disable warning messages 4507 and 4034.
#pragma warning( disable : 4507 34 )

// Issue warning C4385 only once.
#pragma warning( once : 4385 )

// Report warning C4164 as an error.
#pragma warning( error : 164 )

컴파일러가 0에서 999 사이의 경고 번호에 4000을 추가합니다.

4700-4999 범위의 경고 번호는 코드 생성과 연결됩니다. 이러한 경고의 경우 컴파일러가 함수 정의에 도달할 때 적용되는 경고 상태는 함수의 나머지 부분에 대해 계속 적용됩니다. 함수에서 warningpragma 4699보다 큰 경고 번호의 상태를 변경하는 데는 함수가 종료된 후에만 적용됩니다. 다음 예제에서는 코드 생성 경고 메시지를 사용하지 않도록 설정한 다음 복원하기 위한 올바른 배치 warningpragma 를 보여줍니다.

// pragma_warning.cpp
// compile with: /W1
#pragma warning(disable:4700)
void Test() {
   int x;
   int y = x;   // no C4700 here
   #pragma warning(default:4700)   // C4700 enabled after Test ends
}

int main() {
   int x;
   int y = x;   // C4700
}

함수 본문 전체에서 마지막 설정이 warningpragma 전체 함수에 적용됩니다.

푸시 및 팝

warningpragma 또한 다음 구문을 지원합니다. 여기서 선택적 n 매개 변수는 경고 수준(1~4)을 나타냅니다.

#pragma warning( push [ , n ] )

#pragma warning( pop )

모든 pragmawarning( push ) 경고에 대한 현재 경고 상태를 저장합니다. 모든 pragmawarning( push, n ) 경고에 대한 현재 상태를 저장하고 전역 경고 수준을 n으로 설정합니다.

pragmawarning( pop ) 스택에 푸시된 마지막 경고 상태를 팝합니다. 경고 상태에 대한 변경 내용과 push pop 실행 취소됩니다. 다음 예제를 고려해 보세요.

#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )

이 코드의 끝에서 모든 경고(4705, pop 4706 및 4707 포함)의 상태를 코드 시작 시의 상태로 복원합니다.

헤더 파일을 작성할 때 사용자가 수행한 경고 상태 변경으로 인해 헤더가 올바르게 컴파일되지 않도록 할 수 push pop 있습니다. 헤더의 시작 부분과 pop 끝에 사용합니다push. 예를 들어 경고 수준 4에서 완전히 컴파일되지 않는 헤더가 있을 수 있습니다. 다음 코드는 경고 수준을 3으로 변경한 다음 헤더 끝에 원래 경고 수준을 복원합니다.

#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop )

경고를 표시하지 않는 데 도움이 되는 컴파일러 옵션에 대한 자세한 내용은 다음을 참조 /FI 하세요 /w.

참고 항목

Pragma 지시문 및 __pragma _Pragma 키워드