C语言 位域

来源:互联网 发布:ipad淘宝网图片打不开 编辑:程序博客网 时间:2024/06/05 16:08
#include <stdio.h>#include <string.h>struct{  unsigned int age : 3;//分配3个bit位} Age;int main( ){    Age.age = 4;    printf( "Sizeof( Age ) : %d\n", sizeof(Age) );//四个字节    printf( "Age.age : %d\n", Age.age );//4<8 输出正确:4    Age.age = 7;    printf( "Age.age : %d\n", Age.age );//7<8 输出正确:7    Age.age = 8;    printf( "Age.age : %d\n", Age.age );//输出 0, 输出错误!1000//8:四比特位,只输出最低的三位    Age.age=11;    printf( "Age.age : %d\n", Age.age );//输出错误!输出3 ,(11)10=(1011)2    return 0;}

结果:

Sizeof( Age ) : 4Age.age : 4Age.age : 7Age.age : 0Age.age : 3