| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:C语言结构位域的问题。新手问问题,别觉得我白痴,,,
取消只看楼主 加入收藏
楚门的时间
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-16
结帖率:0
收藏
 问题点数:0 回复次数:2 
C语言结构位域的问题。新手问问题,别觉得我白痴,,,
一个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 10:44
楚门的时间
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-16
收藏
得分:0 
没分就不理我?

验证码一堆,还好我不是色盲。。。
2010-11-18 11:02
楚门的时间
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-16
收藏
得分:0 
还是问题问的有问题?

验证码一堆,还好我不是色盲。。。
2010-11-18 11:03
快速回复:C语言结构位域的问题。新手问问题,别觉得我白痴,,,
数据加载中...
 
   



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

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