Declarar variáveis no topo da função ou em escopos separados?
Qual é o preferido, método 1 ou método 2?
Método 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;
}
Método 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;
}
No método 1, se msg = WM_PAINT quando a função wpMainWindow é chamada, ele aloca memória para todas as variáveis na pilha no início? ou somente quando ele entra no escopo WM_PAINT?
O método 1 usaria apenas a memória quando a mensagem é WM_PAINT, e o método 2 usaria a memória, independentemente da quantidade de mensagens igualada?