最近在定义项目底层的数据结构时,发现了一个很好的树形图法定义数据结构,这个里更大家分享一下。。。
当涉及到通讯协议时,往往我们会有一系列的数据定义、位定义以及相当数量的预留位。当程序中读取和传输这些通讯协议中的有效数据位时,往往是不确定性的。有整字节读取,位读取,多位读取等。当然写入也一样。由于这些原因,当我们对某些位或者字节进行操作时,麻烦就来了。
使用树形结构,充分利用结构体和联合体,这些将会变的简洁明了了。。。
typedef unsigned char u8; //最底层的哦,以下开始树形结构的定义。。。
typedef struct eigth_bits
{
u8 bit0 :1;
u8 bit1 :1;
u8 bit2 :1;
u8 bit3 :1;
u8 bit4 :1;
u8 bit5 :1;
u8 bit6 :1;
u8 bit7 :1;
}eigth_bits;
typedef union BITSET8 //这里原子操作,被定义了。。。
{
u8 byte;
eigth_bits part;
}BITSET8;
typedef s