본문 바로가기

Programming/API

[Windws Programming] UNREFERENCED_PARAMETER 매크로

가끔가다 Windows Programming 하다보면 자동적으로 제공해주는 기본 틀을 무심코 사용하는데, UNREFERENCED_PARAMTER() 매크로를 보고 이 넘이 뭐하는 건지 잠깐 궁금해 졌다.

간혹 컴파일 하다보면 이런 경고가 튀어 나올때가 있다.

warning C4100: 'argc' : unreferenced formal parameter
warning C4100: 'argc' : 참조되지 않은 형식 매개 변수입니다.

한마디로, 선언은 해놨지만 쓰이지 않고 있다는 소리다.

Console 프로그램의 argc, argv같은 경우나, 프로토타이핑할 때 함수나 클래스의 껍데기만 만들다 보면 주로 발생한다.
사실 별로 상관은 없으니까 무시하면 된다...

그러나!! 계속 눈에 거슬리니까 신경 쓰인다.

이럴땐 UNREFERENCED_PARAMETER(...) 매크로를 사용하자.

void SomeFunction(int arg1)
{
      UNREFERENCED_PARAMETER(arg1);
}

실제 구현은 다음과 같다.

#define UNREFERENCED_PARAMETER(P) (P)

그냥, warning 없애주기 위해 한번 쓱 건드리고 지나가는 역활밖에 안한다. -_-; 진정한 의미!? 그 따위건 개나 줘버리라고 하고.. 매크로에 넘어온 변수(ADT 포함)가 사용되지 않다고 할 지라도 에러를 발생하지 말길 바라며... ㄷㄷ

성능에 영향도 없는데다, 오류도 없애주니까.. 신경쓰일땐 애용해 보자.

이 외에도
DBG_UNREFERENCED_PARAMETER, DBG_UNREFERENCED_LOCAL_VARIABLE 등도 준비되어 있다.
입맛에 따라 골라써먹자! -_-!!