这个是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求的是字节。不知道说清楚没。