c 位域

 在内核中有些地方会有位域的应用,故对位域总结一下;

  位域是有两点优点节约存储空间和处理简单;位域的定义和位域变量的说明与应用和结构体相似(可以简单的认为就是);

EX:

#include <stdio.h>

int main(void)

{

        struct bf

        {

                unsigned a:1; //域名

                unsigned :0;    //无域名不可使用,起调整的作用;0表示改字节剩余位,数字(1-7)表示具体的位数;

                unsigned b:2;  //下一个字节开始储存,位域不能跨越字节;

                unsigned :6;

        }testbf,*ptestbf;

        testbf.a=1;

        testbf.b=2;

        printf("testbf.a=%d, tettbf.b=%d\n",testbf.a,testbf.b);

        ptestbf = &testbf;

        ptestbf->a &= 0;

        ptestbf->b |=1;

        printf("ptestbf->a=%d,ptestbf=%d\n",ptestbf->a,ptestbf->b);

 return 0;

}

vc++6.0 编译通过,结果right

你可能感兴趣的:(c 位域)