struct位域

Posted 珵诩媛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struct位域相关的知识,希望对你有一定的参考价值。

1 总结下 结构体位域的使用

  比如 

则 struct _COM2

{

  u8 Len : 1;//低位

  u8 EoN : 2;

  u8 Stop:1;

  u8 Bps:4;//高位  

}

union COM

{

  u18 data;

      struct _COM2 COM2;

};

测试可用:

#include "stdio.h"

struct _yyy
{
    int qq8:4;
    int qq7:4;
    int qq6:4;
    int qq5:4;
    int qq4:4;
    int qq3:4;
    int qq2:4;
    int qq1:4;
};

union _aa
{
    int xxx;
    struct _yyy yyy;
};


int main(void)
{    
    union _aa aa;
    aa.xxx = 0x12345678;
    printf("%d\\n", aa.yyy.qq1);
    printf("%d\\n", aa.yyy.qq2);
    printf("%d\\n", aa.yyy.qq3);
    while(1);
}

 

以上是关于struct位域的主要内容,如果未能解决你的问题,请参考以下文章

18.位域

C 位域

C言语位域

C语言-结构体与位域

C语言自定义类型一网打尽(结构体位段/位域枚举联合体)

C语言中如何将16位结构体定义为4位和12位两部分