경고 나오지 않도록 #pragma warning( disable : 경고 번호 )

경고 다시 나오도록 #pragma warning( default : 경고 번호 )

경고가 에러가 되도록 #pragma warning( error : 경고 번호 )

반복되는 경고가 한번만 나오도록 #pragma warning( once : 경고 번호 )

저작자 표시
신고
by 흥배 2013.09.06 08:00
게임 프로그래밍을 할 때 클라이언트 파트의 경우는 외부 라이브러리를 사용하는 경우가 많아서
경고 레벨을 '3'을 하는 경우가 꽤 있는 것 같습니다.

이때 경고 레벨 3에서는
if( pObj = NULL )

이라는 코드에 대해서 경고를 내지 않습니다.

그래서
if( NULL == pObj )

라는 방식으로 조건문을 적는데

경고 레벨 3에서 처음 방식으로 하면서 경고를 내고 싶은 경우는
#pragma warning (4 : 4706)

이렇게 하면됩니다.

조건문에서 대입 연산자를 사용했을 때 내는 경고 번호가 4706인데 위의 #pragma는
4706 경고만 레벨 4로 올려 줍니다.


더 자세한 내용은 여기를 참고하세요


저작자 표시
신고
by 흥배 2011.12.07 23:02

견고한 프로그램을 만들기 위해서는 컴파일러 경고 레벨을 4(즉 최고) 해 놓아야합니다.

 

경고 레벨을 4로 해 놓은 후 자신이 만든 코드에서는 최대한 경고가 나오지 않도록 코드를 잘 정리합니다.

 

그런데 본인의 코드나 다른 누군가가 만든 라이브러리에서 에러나 문제가 될 정도는 아니지만    경고가 발생하는 경우가 있습니다(예를 들면 함수의 파라미터를 사용하지 않은 경우 등).

이 경고가 다행히 문제를 일으키는 것은 아니지만 컴파일 할 때마다 출력되므로 무척 보기 좋지 않고, 본인이 실제 작업하다가 만든 경고(특히 위험성 높은 경고)도 불 필요한 경고들 때문에 못 볼 수도 있습니다.

 

이렇게 불 필요한 경고를 없을 때는 #pragma 지시자를 사용하면 해결 할 수 있습니다.

만약 DebugTrace.h 라는 파일을 include 하고 있는데 여기서 불 필요한 경고를 발생하고 있다면 include 하는 부분에서 아래와 같이 #pragma를 사용합니다.

 

// 4100 경고 무시

#pragma warning( push )

#pragma warning( disable : 4100 )

           #include "DebugTrace.h"

#pragma warning( pop )

저작자 표시
신고
by 흥배 2010.02.23 08:30
| 1 |

티스토리 툴바