class MyClass{
public:
int i;
int ii;
int iii;//why not 16?
};
int main(void)
{
printf("%d,%d\n",sizeof(size_t),sizeof(MyClass));
return 0;
}
发现打印8,12.类型MyClass并不是按照8字节对齐的。
这是为什么?
...全文
4536打赏收藏
64位系统下,class的默认对齐是按照8字节长么?我发现是4字节啊
我用VC2010的64位版在win2k8R2 上面编译一个小程序,工程属性都接受默认值。 class MyClass{ public: int i; int ii; int iii;//why not 16? }; int main(void) { printf("%d,%d\n",sizeof(size_t),sizeof(MyClass)); return 0; } 发现打印8,12.类型MyClass并不是按照8字节对齐的。 这是为什么?