원본 : http://www.debuglab.com/knowledge/nowarning.html
2. 인자를 주석처리한다.
3. UNUSED 매크로를 사용한다. *추천*
-----------------------------------------------------------
UNUSED 매크로는 MFC에서 다음과 같이 정의되어 있습니다.
UNUSED 는 release 버전에서만 사용하지 않는다는 의미가 되고 UNUSED_ALWAYS 는 항상 사용하지 않는다는 의미가 되겠죠..
- 2001.08.13 Smile Seo -
1.요약
-
VS 에서 새로 만든 프로젝트의 디폴트 warning 레벨은 3 입니다.
하지만 많은 서적에서 warning 레벨을 4로 맞추어 놓기를 권장하고 있습니다. 컴파일러로부터 보다 많은 조언을 구할 수 있기 때문입니다.
이 경우에 사용하지 않은 인자에 대해서도 warning을 발생시키는데 MFC에는 이런 warning에 대비한 매크로가 있습니다.
2.본문
-
사용하지 않는 인자에 대해서 warning을 발생시켜주는 점은 참 고맙지만 고의로 그렇게 한 경우 - 보통 메시지 핸들러에서 이런 경우가 많습니다 - 에는 의미없는 메시지입니다.
이럴때는 크게 3가지 방법으로 warning을 제거할 수 있습니다.
1. 인자를 빼버린다.
void CMyView::OnMouseMove( UINT, CPoint point)
=> 이해하기 힘든 코드가 될 수도 있습니다. 2. 인자를 주석처리한다.
void CMyView::OnMouseMove( UINT /*nFlags*/, CPoint point)
=> 1 번보다는 좋지만, 문제점이 몇 가지 있습니다. 3. UNUSED 매크로를 사용한다. *추천*
void CMyView::OnMouseMove( UINT nFlags, CPoint point)
{
UNUSED_ALWAYS(nFlags)
...
}
=> 참 보기 좋네요.. -----------------------------------------------------------
UNUSED 매크로는 MFC에서 다음과 같이 정의되어 있습니다.
#ifdef _DEBUG
#define UNUSED(x)
#else
#define UNUSED(x) x
#endif
#define UNUSED_ALWAYS(x) x
정리하자면 UNUSED 는 release 버전에서만 사용하지 않는다는 의미가 되고 UNUSED_ALWAYS 는 항상 사용하지 않는다는 의미가 되겠죠..
3.예제
4.참고
-
Debugging Windows Programs, Strategies, Tools, and Techniques for Visual C++ Programmers
- 2001.08.13 Smile Seo -
댓글
댓글 쓰기