免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1459 | 回复: 8
打印 上一主题 下一主题

位段的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-06 18:49 |只看该作者 |倒序浏览
书上写位段不能定义数组,但是现在需要位段数组,有没有什么好的实现方法啊?

论坛徽章:
0
2 [报告]
发表于 2005-12-06 18:53 |只看该作者
如果定义成位段数组的话,操作会方便很多

论坛徽章:
0
3 [报告]
发表于 2005-12-06 18:58 |只看该作者
位段?你是不是说的位域?

定义个数组,然后用强制转换都不可以么?

[ 本帖最后由 luojiannx 于 2005-12-6 18:59 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2005-12-06 19:04 |只看该作者
可不可以给个例子啊!

论坛徽章:
0
5 [报告]
发表于 2005-12-06 19:23 |只看该作者
原帖由 erikingdom 于 2005-12-6 19:04 发表
可不可以给个例子啊!

那你能不能给个失败的例子呢

论坛徽章:
0
6 [报告]
发表于 2005-12-06 20:57 |只看该作者
unsigned bit_array[256]:2;

论坛徽章:
0
7 [报告]
发表于 2005-12-06 21:29 |只看该作者
可以這麼用、他只能用在構造体里面

  1.     struct{
  2.         unsigned int elem:2
  3. #ifdef   LETSMALL
  4.             __attribute__((packed))
  5. #endif
  6.             ;
  7.         unsigned int     :6;
  8.     }bitarray[256] ;

  9.     bitarray[0].elem=3;
复制代码

论坛徽章:
0
8 [报告]
发表于 2005-12-06 21:39 |只看该作者
中间那个
#ifdef   LETSMALL
            __attribute__((packed))
#endif
什么意思?

论坛徽章:
0
9 [报告]
发表于 2005-12-06 21:52 |只看该作者
如果是gcc可以把大小弄小点,否则把那三行去掉,一般没什么大用处

  1. struct{
  2.         unsigned char elem:2;
  3.         unsigned char     :6;
  4.     }bitarray[256] ;
复制代码

[ 本帖最后由 zalem 于 2005-12-6 21:54 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP