搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 位字段移植性问题
标题:
位字段移植性问题
只看楼主
至尊幽蓝
等 级:
论坛游民
帖 子:7
专家分:20
注 册:2015-7-30
结帖率:
0
楼主
已结贴
√
问题点数:10 回复次数:5
位字段移植性问题
书上说,位字段难以移植,谁能给解释下怎么个难移植啊。
当然,不同的平台,同一组位运算符操作,可能产生不同的结果,要是不用位运算符,只用位字段结构成员名,就不会有事了吧。
还有,不同的机器上需要不同的掩码,通过构造一个联合,包含一个位字段结构或一个int,让每个字段对象分别为所要的值,其它为0,读取联合中int的值不就是掩码吗。
是这样吗?
搜索更多相关主题的帖子:
性问题
联合
2015-08-02 12:45
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
得分:10
你说位字段是什么?
授人以渔,不授人以鱼。
2015-08-02 17:31
至尊幽蓝
等 级:
论坛游民
帖 子:7
专家分:20
注 册:2015-7-30
第
3
楼
得分:0
回复 2楼 TonyDeng
struct A
{
unsigned b:2;
unsigned c:3;
unsigned d:3;
};
类似这种,b,c,d都是位字段
2015-08-02 18:01
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
4
楼
得分:0
那你觉得移植到其他机器上A都与这里的A是同一尺寸?里面的unsigned呢,也是一样的?不同尺寸的数据,你怎么掩?
授人以渔,不授人以鱼。
2015-08-02 18:05
至尊幽蓝
等 级:
论坛游民
帖 子:7
专家分:20
注 册:2015-7-30
第
5
楼
得分:0
2个问题:
1.你的意思就是要进行位运算时,不知道怎么算,也就是掩码不知道是多少,那我只使用位字段的存储功能,不写位运算的代码,是不是就可移植了。
2.关于怎么构造掩码的问题,我想是不是可以这样,先有前面的字段结构A,然后声明个联合:
程序代码:
union
E {
struct
A;
unsigned
F; }XX;
然后
XX.F=
0
; A.b=
3
;
此时,掩码就是XX.F的值。想构造什么样的掩码,对联合中的A相应位赋值,其它位是0,再从F获得掩码。
你说这样行吗?
2015-08-02 18:55
至尊幽蓝
等 级:
论坛游民
帖 子:7
专家分:20
注 册:2015-7-30
第
6
楼
得分:0
回复 4楼 TonyDeng
更正:
是
XX.F=0;
XX.A.b=3;
3就是11b
2015-08-02 18:57
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-455987-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.130364 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved