컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, November 22, 2006

C언어 VC++] 특정 경고(워닝)메시지 출력 일시 중지 프라그마; pragma warning Off


심각한 에러가 있을 때에는 에러 메시지가 나오고 컴파일이 중단되지만, 작은 문제가 있을 때에는 경고(warning)만 나옵니다.

그런데 고칠 수 없거나 고칠 필요가 없는 경고일 경우에는, 그 경고에 한해서만 경고 출력을 잠시 중단하는 것이 좋습니다.

비주얼C(Visual C++)에서, 특정 경고 메시지를 잠시 중단시키는 방법입니다.



이런 경고 2개를 예로 듭니다.

0.cpp(9) : warning C4101: 'i' : unreferenced local variable
(사용하지 않는 지역변수)

0.cpp(10) : warning C4189: 'd' : local variable is initialized but not referenced
(초기화했으나 사용하지 않는 지역변수)


경고 번호는 4101 과 4189 입니다.


main 함수에서만 경고를 중지시키는 방법입니다.


특정 워닝 일시 중시 예제


소스 파일명: 0.cpp
#include <stdio.h>

void foo(void);


// 경고 번호를 나열해 주면 됨
#pragma warning( disable : 4101 4189 )
int main(void) {

  int i;
  double d = 0.0;

  return 0;
}
#pragma warning( default : 4101 4189 )
// 이제 원래대로 환원
// 만약 이 부분이 없다면, 이하 모든 함수에서 경고 메시지 출력이 중지됨



void foo(void) {

  int i2;
  double d2 = 0.0;

}
// 이 함수에서는 경고가 정상적으로 나옴




#pragma warning ... 이 없을 경우의 경고 상태
D:\Z>cl 0.cpp && 0.exe
0.cpp
0.cpp(10) : warning C4101: 'i' : unreferenced local variable
0.cpp(11) : warning C4189: 'd' : local variable is initialized but not reference
d
0.cpp(24) : warning C4189: 'd2' : local variable is initialized but not referenc
ed
0.cpp(23) : warning C4101: 'i2' : unreferenced local variable




#pragma warning ... 이 있을 때. 메인 함수 내의 경고는 사라짐
D:\Z>cl 0.cpp && 0.exe
0.cpp
0.cpp(24) : warning C4189: 'd2' : local variable is initialized but not referenc
ed
0.cpp(23) : warning C4101: 'i2' : unreferenced local variable







참고로, 위에서 예로 든 워닝들은 일반적인 상태에서는 나오지 않고, 환경 변수를

set CL=/W4

이렇게 최대한 경고가 많이 나오도록 설정한 상태에서만 나타나는 경고입니다.


☞ C/C++

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top