51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2617|回复: 5
打印 上一主题 下一主题

[讨论] 代码审查:定义结构的时候加了:

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-5-17 09:56:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在代码审查时,看到有这样的数据类型定义:
typedef union
{
    HRINT8U Byte;
    struct
    {
        HRINT8U Sw_Last1SwSt            :1;
        HRINT8U Sw_Last2SwSt            :1;
        HRINT8U Sw_CurSwSt              :1;
        HRINT8U Sw_RealSwSt             :1;
        HRINT8U Sw_Reserved             :4;
    } Bits;
} OneSwStr;
结构中后面的:代表什么意思呢?有谁能解释一下吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-5-17 12:46:41 | 只看该作者
你是说阿拉伯数字?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-5-17 13:06:07 | 只看该作者
是的,不知道在结构成员中加:再加阿拉伯数字啥意思,能给个提示吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-5-17 15:43:43 | 只看该作者
数字只是描述了每个成员的大小。
成员Sw_Last1SwSt需要1个byte。
成员Sw_Reserved需要4个byte。
联合体的数据结构已经很少使用了,所以这种格式也很少见。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-5-17 15:48:46 | 只看该作者
我觉得可能是这样的:
使用共用体的意义在于:可以访问一个字节,也可以访问字节中的位,并且访问的字节和位在同一段内存中,而结构后面加上阿拉伯数字则是在定义这个字节中的位,例如:我要访问字节(同时访问8个位,内存段从0×01-0×08),
下个时刻我要访问这个内存断中0×04-0×08,使用Union的好处就在于次,访问的内存段一样。
不知道我的解释大家理解了吗?
其实Union作为C的标准数据类型之一还是有它的用处的,只要充分了解它的特点,就不会犯错。

[ 本帖最后由 peiping790809 于 2006-5-17 15:50 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-5-18 08:13:37 | 只看该作者
原帖由 peiping790809 于 2006-5-17 15:48 发表
我觉得可能是这样的:
使用共用体的意义在于:可以访问一个字节,也可以访问字节中的位,并且访问的字节和位在同一段内存中,而结构后面加上阿拉伯数字则是在定义这个字节中的位,例如:我要访问字节(同时访问8 ...



就是这个道理!!!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 07:32 , Processed in 0.066587 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表