第1个回答 推荐于2017-09-30
这个是struct的一个性质。
就是在结构体中指明,变量所占的位数。
因为unsigned short i;正常在32位机器中,是占16位的。
而由于程序中结构体,不需要那么多位,程序员,认为8位就足够了,为了节省内存空间,所以它特别指出,这个变量占8位。
unsigned short i:8;
不考虑边界对齐的话,就是想加可以,但是实际程序中,是有边界对齐的。
就是1+1+4=6.字节。
注意上面的是以位为单位。
char t:4;
char k:4;
unsigned short i:8;
其中4,4,8指的是位。而sizeof求的是字节。
不知道说清楚没。本回答被提问者采纳