Макрос UNREFERENCED_PARAMETER

Discussion in 'WASM.BEGINNERS' started by bigredcat, Aug 8, 2008.

  1. bigredcat

    bigredcat New Member

    Blog Posts:
    0
    Joined:
    Sep 3, 2007
    Messages:
    54
    Для чего нужен макрос UNREFERENCED_PARAMETER после return?

    В MSDN в разделе Using Window Classes есть такой пример:
    Code (Text):
    1. int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
    2.     LPSTR lpCmdLine, int nCmdShow)
    3. {
    4.     MSG msg;
    5.  
    6.     if (!InitApplication(hinstance))
    7.         return FALSE;
    8.  
    9.     if (!InitInstance(hinstance, nCmdShow))
    10.         return FALSE;
    11.  
    12.     while (GetMessage(&msg, (HWND) NULL, 0, 0) != 0 && GetMessage(&msg, (HWND) NULL, 0, 0) != -1)
    13.     {
    14.         TranslateMessage(&msg);
    15.         DispatchMessage(&msg);
    16.     }
    17.     return msg.wParam;
    18.         UNREFERENCED_PARAMETER(lpCmdLine);
    19. }
    Сам макрос UNREFERENCED_PARAMETER определен в winnt.h следующим образом:
    Code (Text):
    1. #define UNREFERENCED_PARAMETER(P)          (P)
    В чем тут фишка?
     
  2. AsmGuru62

    AsmGuru62 Member

    Blog Posts:
    0
    Joined:
    Sep 12, 2002
    Messages:
    689
    Location:
    Toronto
    Макрос нужен для избежания предупреждения компилятора о неиспользованном параметре или переменной. Может быть помещён где угодно в теле процедуры. Можно и без макроса - просто имя переменной и точка с запятой. С макросом код легче управляем - например если надо найти места где есть неиспользованные параметры - ищем UNREFERENCED_PARAMETER во всех файлах проекта.