搜索

C语言定义变量后面加冒号数字什么意思

gecimao 发表于 2019-08-15 22:36 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  知道合伙人互联网行家采纳数:20219获赞数:51936专业C/C++软件开发向TA提问展开全部该种形式出现于结构体或共用体的定义中,是位域定义的标准形式。

  n为正整数,其值必须小于type类型占用的位数。比如type如果是int,占4字节32位,那么n必须是1~31之间的整数。

  对于位域类型的成员,在赋值时如果实际值超过n位所能表达的范围,那么超出部分将会被截掉,只保存低位值。如int var:4,本身只有4位的空间,如果赋值var = 20, 由于20的二进制值为10100,实际为五位,这时var实际被赋值的就是低四位,0100,即4。

  由于C语言中的地址是针对字节计算的,所以位域类型的成员变量不支持取地址操作,即对于变量v, 如果存在位域成员变量var,那么&a.var是非法的,编译会出错。

  digits表示该位段所占的二进制位数追问那这是不是意味着这个变量表示的范围变化了,比如int i: 8;是不是i只能表示0~255,或者-128~127。是前者还是后者?

  还有,在结构体外可否用这种方式,比如我想定义个开关变量,只须1bit,是不是可以定义int i: 8; 不在结构体中

本文链接:http://saskatoonflowers.net/dingmingjiegou/856.html
随机为您推荐歌词
推荐文章

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部