float OUT_ARI_TEM_AM[30];
float OUT_AIR_HUM_AM[30];
case 0x0D:
{
//int8_t j;
c=conversion(i);
c=c*0.1;
for(j=29;j>=0;j–)
{
OUT_ARI_TEM_AM[j+1]=OUT_ARI_TEM_AM[j];
}
OUT_ARI_TEM_AM[0]=c;
break;
}
case 0x0E:
{
//int8_t j;
c=conversion(i);
c=c*0.1;
for(j=29;j>=0;j–)
{
OUT_AIR_HUM_AM[j+1]=OUT_AIR_HUM_AM[j];
}
OUT_AIR_HUM_AM[0]=c;
break;
}
这个switch,先是调到了case 0x0E后OUT_AIR_HUM_AM[0]被赋了一个值,再调到case 0x0D时,执行OUT_ARI_TEM_AM[j+1]=OUT_ARI_TEM_AM[j];时OUT_AIR_HUM_AM[0]的值也同时被改变,这是为什么,要怎么解决呢,谢谢
解决方案:25分
j为29时j+1是30越界了
解决方案:5分
++
解决方案:5分
编译器缺少越位 吹哨!
解决方案:5分