标题:c中冒号的作用?help
只看楼主
kinglence
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-3
结帖率:100%
已结贴  问题点数:5 回复次数:4 
c中冒号的作用?help
int type:1;   int reserved:31;
这两个冒号是什么意思啊???
搜索更多相关主题的帖子: 冒号 help 
2009-09-04 23:46
养下就很帅
Rank: 2
等 级:论坛游民
帖 子:32
专家分:50
注 册:2007-8-3
得分:0 
这两句在c语言中是类型定义 int 后跟变量名 ~ 标识符的命名规则里包括:吗
2009-09-04 23:55
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
得分:5 
lz这样的代码经常在结构里面用到,冒号后面的数字表明的是所占位宽,主要是为了节省存储空间。比如:
struct message_header
{
    unsigned char aa :1;
    unsigned char bb :1;
    unsigned char cc :1;
    unsigned char dd :1;
    unsigned char ee :4;
};
这样一来,整个结构就只需要1个字节,也就是8位(1 + 1 + 1 + 1 + 4)就够了。这样在诸如设置掩码之类的地方特别方便。
                                                         .
像你的那段代码就只需要1个32位(1 + 31)的int型存储空间就够了,而不需要2个32位的int空间。

[ 本帖最后由 prankmoon 于 2009-9-5 00:24 编辑 ]
2009-09-05 00:22
xtulearner
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-5-19
得分:0 
结构体能这样定义吗?联合体才这样呀。

今朝有酒今朝醉,哪管明日乐与悲。
2009-09-05 18:31
diaoxiong007
Rank: 1
等 级:新手上路
帖 子:4
专家分:6
注 册:2009-9-5
得分:0 
其实是位段
c语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或“位域”,功能是节省空间,前提是用在结构体中;
例 struct packed_data
{
unsigned a:2;
unsigned b:6;
unsigned c:4;
unsigned d:4;
int i;
}data;
在位段中":"的作用就是接位数。
2009-09-05 20:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-284833-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.162647 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved