VCでUNREFERENCED_についてPARAMETERの使用

2647 ワード

vc 10を使用してC++のプロジェクトを構築する場合、自動的に生成されるエントリ関数は次のとおりです.
int APIENTRY _tWinMain(HINSTANCE hInstance,

                     HINSTANCE hPrevInstance,

                     LPTSTR    lpCmdLine,

                     int       nCmdShow)

{

    UNREFERENCED_PARAMETER(hPrevInstance);

    UNREFERENCED_PARAMETER(lpCmdLine);



     // TODO: Place code here.

    MSG msg;

    HACCEL hAccelTable;



    // Initialize global strings

    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

    LoadString(hInstance, IDC_S_WAR3HELPER, szWindowClass, MAX_LOADSTRING);

    MyRegisterClass(hInstance);



    // Perform application initialization:

    if (!InitInstance (hInstance, nCmdShow))

    {

        return FALSE;

    }



    hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_S_WAR3HELPER));



    // Main message loop:

    while (GetMessage(&msg, NULL, 0, 0))

    {

        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))

        {

            TranslateMessage(&msg);

            DispatchMessage(&msg);

        }

    }



    return (int) msg.wParam;

}

前の2行にUNREFERENCED_がありますPARAMETER
UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

このマクロはwint.hで以下のように定義されています.
 
#define UNREFERENCED_PARAMETER(P) (P)

 
このマクロの役割は、コンパイラが参照されていないパラメータに関する警告を回避するために、伝達されたパラメータまたは式を展開することです.