| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 934 人关注过本帖
标题:关于编译环境为小端字节序的赋值问题
只看楼主 加入收藏
wlhdhn
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2009-11-18
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
关于编译环境为小端字节序的赋值问题
struct T_s1
    {
        char a;
        short b;
        char c;
    };
    union T_s2
    {
        int a;
        T_s1 b;
    };
    T_s2 s;
    s.a=0x11223344;
    cout<<hex<<s.b.a<<endl
        <<hex<<s.b.b<<endl
        <<hex<<s.b.c<<endl;

我在VC++6.0环境下的运行结果是:
                              D
                              1122
请问s.b.a的值为何是D?还有就是s.b.c为何没有值输出?
百思不得其解啊?
请大牛指点!!谢谢!!
搜索更多相关主题的帖子: short 
2011-10-16 20:55
wlhdhn
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2009-11-18
收藏
得分:0 
自己顶下,别沉了,请给位大牛不吝赐教!!
2011-10-17 09:17
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:20 
你知道小端模式下数据在内存的存储方式,知道结构体的成员内存边界对其,知道联合体的共用,知道acsii码。那问题就解决了。

离恨恰如春草,更行更远还生。
2011-10-17 11:50
wlhdhn
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2009-11-18
收藏
得分:0 
明白了,谢谢楼上指教!
2011-10-17 20:32
wlhdhn
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2009-11-18
收藏
得分:0 
小端模式是低地址放地位,union中成员共用内存空间,因此0x3344分给T_s1::a,因字符只需一个字节,所以s.b.a=0x44,即字符‘D’,0x1122分给T_s1::b,而T_s1::c=0;即字符‘\0’
2011-10-17 20:37
冰之将释
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2011-8-18
收藏
得分:0 
知道 了,很感谢复习了一下
2011-10-24 22:15
快速回复:关于编译环境为小端字节序的赋值问题
数据加载中...
 
   



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

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