trong ví dụ này, mặc dù tôi sẽ không bao giờ sử dụng các biến WNDCLASSEX, x, y, cx, cy, họ sẽ vẫn sử dụng bộ nhớ khi tôi đang ở trong vòng lặp thông điệp:Khi khai báo các biến trong phạm vi {}, chúng sẽ vẫn sử dụng bộ nhớ sau?
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;
}
Nhưng tôi tự hỏi , nếu tôi đặt chúng trong một phạm vi, họ vẫn sẽ sử dụng bộ nhớ trong vòng lặp tin nhắn? ví dụ.
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;
}
hoặc có thể nếu tôi đặt chúng thành hai hàm và gọi chúng là winmain, ví dụ:
wnd_register(hInst);
wnd_create(hInst);
sẽ ngăn chúng sử dụng bộ nhớ?
câu hỏi hayMặc dù, sẽ rất dễ dàng để thử nghiệm như nightcracker nói. Có thể đã dành ít thời gian thử nghiệm nó cho mình hơn là gõ câu hỏi này lên! –
Tại sao bạn khai báo các biến mà bạn không sử dụng – Falmarri
Đây thực sự là một tối ưu hóa vi mô vô ích. Chủ đề trên Windows theo mặc định có ngăn xếp 1 MB. Bạn đang lo lắng về lãng phí ít hơn một phần trăm của một phần trăm không gian ngăn xếp có sẵn của bạn. – Michael