struct sizeof 如何是7

struct sizeof 怎么是7?

struct A 

     char     x1 : 4; 
     char     x2 : 4; 
     unsigned short  x3 : 8; 
     unsigned long   x4; 



sizeof(A)=?(不考虑边界对齐)
我在vs2010上测试 输出为 7 。

为什么不是 6 ?
------解决方案--------------------
如果想是6的话,把前边两个char修改为unsigned short,或者把第三个unsigned short修改为char也可以
对于不同的类型,vs系列是不能合并的,好像gcc可以?