可能重複:
Why does ‘sizeof’ give wrong measurement?C++的sizeof給出了不可預知的結果
我有一個名爲CBUFFER_PEROBJECT結構:
struct CBUFFER_PEROBJECT
{
D3DXMATRIX Final;
D3DXMATRIX Rotation;
};
而在另一個類我這樣做:
...
bd.ByteWidth = sizeof(CBUFFER_PEROBJECT);
...
我發現D3DXMATRIX的大小是64,所以64 + 64 = 128(對吧?)。但我的編譯器是在捉弄我(的Visual C++),因爲我在調試程序時,bd.ByteWidth成了132,所以我去了即時窗口(Visual Studio中),和類型:
sizeof(D3DXMATRIX) + sizeof(D3DXMATRIX)
而結果是:
128
但bd.ByteWidth變成132,當我鍵入以下到 「即時窗口」:
sizeof(CBUFFER_PEROBJECT)
它給我:
128
64 * 64不是128. –
什麼問題? – 0x499602D2
64 * 64是4096 – 0x499602D2