number007cool 发表于 2010-7-21 19:41:07

关于NIOS II中位域使用的几点疑问

structTT
{
alt_u8 a0:1;
alt u8 a1:1;
...
alt_u8 a7:1;
alt_u8 b0:1;
alt_u8 b1:1;
...
alt_u8 b7:1;
alt_u8 c0:1;
alt_u8 c1:1;
...
alt_u8 c7:1;
alt_u8 d0:1;
alt_u8 d1:1;
...
alt_u8 d7:1;

};
unionTG
{
alt_u64 all;
struct TT data;
}sec;
像我这样使用的话,有没有问题?

或者换句话:
这样说,我想将40位的数据存储起来,然后可以对每一位进行单独的操作,当对整体进行移位操作时,保证定义的40位是连续在一起的,即移位的时候不发生任何错误(例如我的40位数据是:11111111000000001111111100000000,对整体进行左移1位后,必须为11111110000000011111111000000000,不能出错)。想实现这个目的该怎么实现?
我对位域的使用不是很熟,所以
清高手指教!

number007cool 发表于 2010-7-21 19:42:13

自己给自己顶一下!

number007cool 发表于 2010-7-21 19:42:32

自己给自己顶一下!

number007cool 发表于 2010-7-21 19:54:28

自己给自己顶一下!
急啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

cfqxdgr 发表于 2010-7-21 21:15:58

不推荐使用位域,是C语言被扫进旮旯里的东西,可以用位运算符替代

avic 发表于 2010-7-22 09:12:26

楼上具体讲一下,怎么用位运算代替呢?我觉得位域很好啊,而且非常灵活

tear086 发表于 2010-7-22 09:21:11

回复【4楼】cfqxdgr
-----------------------------------------------------------------------

够装13。

cfqxdgr 发表于 2010-7-22 13:10:10

装你娘的蛋,你有没有看过用了位域编译出来的玩意是什么垃圾不,有多臃肿你知道不??有没有了解过不同编译器之间对位域处理的区别?写这种高度不可移植的代码, 会给后续的维护带来多大问题你想过没?

tear086 发表于 2010-7-22 14:53:14

回复【7楼】cfqxdgr
-----------------------------------------------------------------------

贴出来,给大家看看。再弄个对比的形式,也贴出来给大家看看。
页: [1]
查看完整版本: 关于NIOS II中位域使用的几点疑问