字体
第(6/6)页
关灯
   存书签 书架管理 返回目录
 struct bs

    {

    unsigned a:1;

    unsigned b:3;

    unsigned c:4;

    } bit,*pbit;

    bit.a=1;

    bit.b=7;

    bit.c=15;

    printf("%d,%d,%d\n",bit.a,bit.b,bit.c);

    pbit=&bit;

    pbit->a=0;

    pbit->b&=3;

    pbit->c|=1;

    printf("%d,%d,%d\n",pbit->a,pbit->b,pbit->c);

    }

    上例程序中定义了位域结构 bs,三个位域为 a,b,c。说明了 bs 类型的变量 bit 和指向

    bs 类型的指针变量 pbit。这表示位域也是可以使用指针的。程序的 9、10、11 三行分别给三

    个位域赋值(应注意赋值不能超过该位域的允许范围)。程序第 12 行以整型量格式输出三个域

    的内容。第 13 行把位域变量 bit 的地址送给指针变量 pbit。第 14 行用指针方式给位域 a 重

    新赋值,赋为 0。第 15 行使用了复合的位运算符"&=",该行相当于:

    pbit->b=pbit->b&3

    位域 b 中原有值为 7,与 3 作按位与运算的结果为 3(111&011=011,十进制值为 3)。同样,程

    序第 16 行中使用了复合位运算符"|=",相当于:

    pbit->c=pbit->c|1

    其结果为

    松语文学免费小说阅读_www.16sy.com
上一页 目录 下一章