我读过一些有关内存对齐的问题,但没有找到与我的问题相关的任何答案。
这里我有2个问题:
struct MyData
{
short Data1;
short Data2;
short Data3;
};
Run Code Online (Sandbox Code Playgroud)
为什么对齐方式是MyData等于2而不是6 == sizeof(MyData)?是否有任何特定原因导致struct使用与其他基元类型不同的方法来计算对齐方式?
根据微软的Alignment文档:
如果地址的对齐方式为 Xn+0,则称该地址与 X 对齐
这是否意味着只有当对象的MyData地址是其对齐方式的倍数时才对齐(2在本例中就是这样)?如果是这样,那么我们可以在内存中分配的对齐对象越大struct,对齐的对象就越少吗?MyData我的假设正确吗?