C/C++ struct位结构(位域) (三)

2014-11-24 10:28:06 · 作者: · 浏览: 3
b:27;
};
bf的字节数为4,如果将a的位域改为6,那么a和b的位域长度和超过int的长度32,int类型根据自身长度的倍数进行对齐,所以bf的字节数则变为8。

同样

struct bf
{
int b:27;
char a:5;
}
也有同样的结论。

如果添加了了__attribute__((packed)),那么系统会对数据进行压缩,而不会发生bf的结果。