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

这段代码输出的两行有可能不一样吗?解决方案

2012-03-09 
这段代码输出的两行有可能不一样吗?C/C++ codefloat *lpfValue (float*)(shared_memory + yc_offset)lp

这段代码输出的两行有可能不一样吗?

C/C++ code
    float *lpfValue = (float*)(shared_memory + yc_offset);        lpfValue += index;                char *lpftmp = (char*)lpfValue;        char *lptmp1 = (char*)(&fvalue);        memcpy(lpftmp,lptmp1,sizeof(float));                if(m_facno==1 && devno==3 && (index ==2 || index ==105))        {            printf("value%d =  %02X %02X %02X  %02X   %f \n ",index,lptmp1[0],lptmp1[1],lptmp1[2],lptmp1[3],fvalue);            printf("value%d =  %02X %02X %02X  %02X   %f \n ",index,lpftmp[0],lpftmp[1],lpftmp[2],lpftmp[3],*lpfValue);        }


ARM里,先不管代码是不是比较怪,分析一下打印的两行有可能不一样吗?我是输出的两行最后的float打印出来有可能不一样,不知道为什么,搞一下午了。

[解决办法]
memcpy(lpftmp,lptmp1,sizeof(float));
有没有多线程环境?这两片内存有没有重叠的可能?

热点排行