Deklarieren Sie Variablen am Anfang der Funktion oder in separaten Bereichen?

Ist bevorzugt, Methode 1 oder Methode 2?

Methode 1:

LRESULT CALLBACK wpMainWindow(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
    switch (msg)
    {
        case WM_PAINT:
        {
            HDC hdc;
            PAINTSTRUCT ps;

            RECT rc;
            GetClientRect(hwnd, &rc);           

            hdc = BeginPaint(hwnd, &ps);
            //drawing here
            EndPaint(hwnd, &ps);
            break;
        }
        default: 
            return DefWindowProc(hwnd, msg, wparam, lparam);
    }
    return 0;
}

Methode 2:

LRESULT CALLBACK wpMainWindow(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    RECT rc;

    switch (msg)
    {
        case WM_PAINT:
            GetClientRect(hwnd, &rc);

            hdc = BeginPaint(hwnd, &ps);
            //drawing here
            EndPaint(hwnd, &ps);
            break;

        default: 
            return DefWindowProc(hwnd, msg, wparam, lparam);
    }
    return 0;
}

In Methode 1, wenn msg = WM_PAINT, wenn wpMainWindow Funktion aufgerufen wird, braucht es Speicher, die alle Variablen auf dem stack am Anfang? oder nur, wenn es in der WM_PAINT-Bereich?

Würde Methode 1 verwenden Sie nur den Speicher, wenn die Nachricht WM_PAINT, und Methode 2 benutzen Sie die memory-egal, was msg erreicht?

InformationsquelleAutor der Frage Kaije | 2010-09-22

Schreibe einen Kommentar