说明int型是4字节呗。这样没有不理解啊,你看你的定义。
这是按位定义啊。
int
a:2;
a占两位
int
b:2;
b占两位
int
c:1;
c占一位
由于是int型,所以内存对齐,整个结构体就只占int型大小。(abc加起来才5位)
所以gcc测定的test是4个字节的int型啊。
补充:不明白楼主还有什么不懂。a只占两位,b也是只占两位,一个字节是8位。int是32位4个字节。a
b
c都是位定义,但是是int型对齐,a
b
c加一起一共占5位,连一个字节都不到,但是内存对齐,所以占32位4个字节。