| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:20分的问题
取消只看楼主 加入收藏
楚门的时间
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
20分的问题
一个C语言中结构位域写法的问题
原来的写法:

typedef union
        {   unsigned char Switch;
            struct
            {
                unsigned  BIT0:   1;
                unsigned  BIT1:   1;
                unsigned  BIT2:   1;
                unsigned  BIT3:   1;
                unsigned  BIT4:   1;
                unsigned  BIT5:   1;
                unsigned  BIT6:   1;
                unsigned  BIT7:   1;                           
             } BITS;                  
          } SWITCH;
            SWITCH    InPut;
#define  input0    InPut.BITS.BIT0
#define  input1     InPut.BITS.BIT1
#define  input2    InPut.BITS.BIT2
#define  input3    InPut.BITS.BIT3
#define  input4    InPut.BITS.BIT4
#define  input5    InPut.BITS.BIT5
#define  input6    InPut.BITS.BIT6
#define  input7    InPut.BITS.BIT7

问题1:我觉得这样写过于累赘(我是新手,不知道为什么要写成这样),能不能下面这种写法实现同样功能?
问题2:unsigned  BIT0: 中只有0和1的变化,直接写BIT0: 可以不可以??

struct  bits
            {
                unsigned  BIT0:   1;
                unsigned  BIT1:   1;
                unsigned  BIT2:   1;
                unsigned  BIT3:   1;
                unsigned  BIT4:   1;
                unsigned  BIT5:   1;
                unsigned  BIT6:   1;
                unsigned  BIT7:   1;                           
             } Switch;
#define  input0    Switch.BIT0
#define  input1     Switch.BIT1
#define  input2    Switch.BIT2
#define  input3    Switch.BIT3
#define  input4    Switch.BIT4
#define  input5    Switch.BIT5
#define  input6    Switch.BIT6
#define  input7    Switch.BIT7
这样的话结果是一样的,定义了一个一个字节的变量Switch,并且可以对这个字节变量进行位操作,有简单的写法为什幺要多写几行字??
搜索更多相关主题的帖子: C语言 
2010-11-18 11:08
楚门的时间
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-16
收藏
得分:0 
好吧,我等了半个钟头,一个一看就能明白的问题值20分,40个人看过,0人理我
"囧"字已不能表达我的心情了

验证码一堆,还好我不是色盲。。。
2010-11-18 11:22
楚门的时间
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-16
收藏
得分:0 
以下是引用hahayezhe在2010-11-18 11:25:46的发言:

你既然明白了 又何必还要来问呢!
前者明显的便于操作, 对于赋值 提取 转换 操作都要比你自己写的容易 方便!
我虽然明白意思,但我不知道两者的优劣在哪里
前者明显的便于操作,怎么个明显法??我感觉后者比较好,明显我的基础构架认知出现了问题。。

[ 本帖最后由 楚门的时间 于 2010-11-18 15:12 编辑 ]

验证码一堆,还好我不是色盲。。。
2010-11-18 15:10
快速回复:20分的问题
数据加载中...
 
   



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

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