en este ejemplo, a pesar de que nunca voy a usar el WNDCLASSEX las variables, x, y, CX, CY, van a seguir utilizando la memoria cuando estoy en el mensaje de bucle:Al declarar variables en {} ámbito, ¿seguirán usando memoria después?
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpArgs, int iCmdShow)
{
WNDCLASSEX wc;
...
RegisterClassEx(&wc);
const int cx = 640;
const int cy = 480;
// center of the screen
int x = (GetSystemMetrics(SM_CXSCREEN) - cx)/2;
int y = (GetSystemMetrics(SM_CXSCREEN) - cy)/2;
CreateWindow(..., x, y, cx, cy, ...);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
pero me pregunto , si los pongo en un ámbito, ¿seguirían usando memoria durante el ciclo de mensajes? p.ej.
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpArgs, int iCmdShow)
{
{
WNDCLASSEX wc;
...
RegisterClassEx(&wc);
const int cx = 640;
const int cy = 480;
// center of the screen
int x = (GetSystemMetrics(SM_CXSCREEN) - cx)/2;
int y = (GetSystemMetrics(SM_CXSCREEN) - cy)/2;
CreateWindow(..., x, y, cx, cy, ...);
}
MSG msg;
while (GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
o tal vez si los puse en dos funciones y los llamé en winmain p. Ej.
wnd_register(hInst);
wnd_create(hInst);
¿Qué les impediría usar la memoria?
buena pregunta +1 Aunque, sería fácil de probar como dice nightcracker. ¡Podría haber pasado menos tiempo probándolo tú mismo que escribiendo esta pregunta! –
¿Por qué declararías variables que no usas? – Falmarri
Esto es realmente una micro-optimización inútil. Los subprocesos en Windows de forma predeterminada tienen una pila de 1 MB. Le preocupa desperdiciar menos de una centésima de un porcentaje del espacio de pila disponible. – Michael