这段代码输出的两行有可能不一样吗?解决方案
这段代码输出的两行有可能不一样吗?
ARM里,先不管代码是不是比较怪,分析一下打印的两行有可能不一样吗?我是输出的两行最后的float打印出来有可能不一样,不知道为什么,搞一下午了。
------解决方案--------------------
memcpy(lpftmp,lptmp1,sizeof(float));
有没有多线程环境?这两片内存有没有重叠的可能?
- 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));
有没有多线程环境?这两片内存有没有重叠的可能?