读书人

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

发布时间: 2012-03-09 21:42:52 作者: rapoo

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

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));
有没有多线程环境?这两片内存有没有重叠的可能?

读书人网 >QT开发

热点推荐