Wednesday, November 22, 2006
C언어 VC++] 특정 경고(워닝)메시지 출력 일시 중지 프라그마; pragma warning Off
심각한 에러가 있을 때에는 에러 메시지가 나오고 컴파일이 중단되지만, 작은 문제가 있을 때에는 경고(warning)만 나옵니다.
그런데 고칠 수 없거나 고칠 필요가 없는 경고일 경우에는, 그 경고에 한해서만 경고 출력을 잠시 중단하는 것이 좋습니다.
비주얼C(Visual C++)에서, 특정 경고 메시지를 잠시 중단시키는 방법입니다.
이런 경고 2개를 예로 듭니다.
경고 번호는 4101 과 4189 입니다.
main 함수에서만 경고를 중지시키는 방법입니다.
소스 파일명: 0.cpp
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
#pragma warning ... 이 없을 경우의 경고 상태
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
#pragma warning ... 이 있을 때. 메인 함수 내의 경고는 사라짐
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
참고로, 위에서 예로 든 워닝들은 일반적인 상태에서는 나오지 않고, 환경 변수를
set CL=/W4
이렇게 최대한 경고가 많이 나오도록 설정한 상태에서만 나타나는 경고입니다.
그런데 고칠 수 없거나 고칠 필요가 없는 경고일 경우에는, 그 경고에 한해서만 경고 출력을 잠시 중단하는 것이 좋습니다.
비주얼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
(초기화했으나 사용하지 않는 지역변수)
(사용하지 않는 지역변수)
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;
}
// 이 함수에서는 경고가 정상적으로 나옴
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
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
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
이렇게 최대한 경고가 많이 나오도록 설정한 상태에서만 나타나는 경고입니다.
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home