位段(bitfield)

时间:2023-03-09 07:37:57
位段(bitfield)

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