免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2125 | 回复: 9

问段代码的问题 [复制链接]

论坛徽章:
0
发表于 2006-04-13 18:02 |显示全部楼层
typedef struct {
        unsigned        fSnapshot        :1;
        unsigned        fCommand        :1;
        unsigned        id                :30;
        union {
                //Ntk_Network_t        *snapshot;
                char                *string;
        } data;
} CmdHistory_t;

unsigned        fSnapshot        :1;这个里面的 :1 是什么意思?? 可以通过编译,菜啊。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2006-04-13 18:19 |显示全部楼层
这样的问题很多呀。
你的c语言教材上难道没讲?
google搜索“位域”。

论坛徽章:
0
发表于 2006-04-13 18:25 |显示全部楼层
OK!
懂了。谢谢。
这个用的好像比较少。

论坛徽章:
0
发表于 2006-04-13 20:32 |显示全部楼层
一般是在需要位操作和节省空间时用到

论坛徽章:
0
发表于 2006-04-14 00:57 |显示全部楼层

回复 3楼 zzghost 的帖子

在内核编程中会用道!
一般的应用程序很少用。

论坛徽章:
0
发表于 2006-04-14 08:45 |显示全部楼层
linux的原码会经常出现
我爱小猪 该用户已被删除
发表于 2006-04-14 09:57 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2006-04-14 10:05 |显示全部楼层
现在的c语言书中很少提到位域了

论坛徽章:
0
发表于 2006-04-14 10:16 |显示全部楼层
后面的数字是指这个symbol所表示的东西在内存中占用的bit,一般现在application很少这么用了……

论坛徽章:
0
发表于 2010-09-30 13:21 |显示全部楼层
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。
详细参考:http://blog.sina.com.cn/s/blog_515b90d00100l0zx.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP