查阅数十本C的参考书也没找到好的招。<br /><br /> uint8 i,u1,*up,*sp;<br /><br /> kn = Prtl_Ctr.P05.User.us_DA; // 测量点类型<br /> up = Prtl_Ctr.P05.User.us_dat; // 数据缓冲<br /> sp = NULL;<br /><br /> switch(kn)<br /> {<br /> case ID_Mp_AC: // 交采表<br /> sp = (uint8*)(&sDatMp.sAC[kn].sEnergy.sP_0.ucSum); // A处<br /> break;<br /> case ID_Mp_Mul: // 多功能表<br /> sp = (uint8*)(&sDatMp.sMulMeter[kn].sEnergy.sP_0.ucSum);<br /> break;<br /> default:<br /> break;<br /> }<br /> if(sp != NULL) // 有数据复制<br /> {<br /> for(i=0; i<4; i++) <br /> {<br /> memcpy(up, sp, 3); // B处<br /> up = up + 3;<br /> }<br /> }<br /><br />改成如下编译都出错:<br /> sp = (uint8*)(&sDatMp.sAC[kn]);<br /><br /> memcpy(up, sp.sEnergy.sP_0.ucSum, 3); <br /> memcpy(up, sp->sEnergy.sP_0.ucSum, 3);<br /><br /><br /><br /><br /><br /> |
|