可能重复:
为什么“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