|
本帖最后由 chengtina 于 2014-1-18 16:09 编辑
脑子不灵光,绕晕了,麻烦高手帮我看下
问题如下:
程序里如下定义:
unsigned char buf[8];
union wt
{
unsigned int x[2];
struct
{
unsigend int y1;
unsigend int y2;
}zt;
};
union wt p_v;
程序中想操作如下,
p_v.zt.y1=0x4037;
p_v.zt.y2=0x1287;
//这步完成后,就应该有如下效果
//p_v.x[0] =0x4037,p_v.x[1] =0x1287
.....
.....
程序中某个时刻,想做这样的操作
for(i=0;i<4;i++)
{
buf = ( ((unsigned char *)(&p_v.x[0]) );
}
问题一:
用GCC编译器,小端模式下这样得到的效果是不是buf[0] =0x37,buf[1]=0x40,buf[2]=0x87,buf[3]=0x12
对吗??
问题二:
可我想得到的结果是,buf[0] =0x40,buf[1]=0x37,buf[2]=0x12,buf[3]=0x87
有什么好办法??
谢谢大家啦
编辑原因:修改错误
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|