首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

为何类型强转后,结构体内的数据就变了

2013-01-08 
为什么类型强转后,结构体内的数据就变了比如,有个内存地址是0xfefefe。有数据结构:struct A{ULONG aBYTE b

为什么类型强转后,结构体内的数据就变了
比如,有个内存地址是0xfefefe。
有数据结构:struct A{
                      ULONG a;
                      BYTE b;
                      BYTE d;
                      ULONG e;
    };
A *a ;
a = (A*)0xfefefe
然后,发现b里面的内容跟内存里的实际内容不符合。已经做过字节取整的处理,字节长度正确。如果不是强转,而是直接从内存地址里取数据,也是正确的。
只有这种指针强转后,会发现数据是错的。
[解决办法]
一般也就下面两种情况:
1. 结构体在内存对齐问题?
2. 注意:大端,小端问题?

热点排行