struct {

        unsigned int fieldA        :       4 ;

        unsigned int fieldB        :       2 ;

        unsigned int fieldC        :       1 ;

    } ;

这是c语言的特性,很少人使用。

fieldA代表将占用4个二进制位,fieldB代表占用2个二进制位,fieldC代表占用1个二进制位。于是,fieldA可以表示0到127之间的值,fieldC可以表示0或1这俩个值。

如果创建的结构体中只有大小为1的位段,那么就能把许多Boolean值塞入一小块数据里面了。有时开发用这个可能会有奇效,比如需要缓存许多Boolean值时。

 

使用:

@interface ZJPerson()

{

  struct{

           unsigned int fieldA  :  1 ;

           unsigned int fieldB  :  1 ;

           } abc;

}

@end