这是针对 MPLABXC8 编译器的,我已经研究并发现了许多相关主题。但无法解决我的问题。我的数组类型定义
typedef volatile struct OneStageOpTag
{
unsigned DevID1: 4;
unsigned SetCmd1 : 4;
unsigned RdyResponse1 :4;
unsigned DevID2: 4;
unsigned SetCmd2 : 4;
unsigned RdyResponse2 :4;
unsigned DevID3: 4;
unsigned SetCmd3 : 4;
unsigned RdyResponse3 :4;
}OneStageOpType[3];
现在我的变量
OneStageOpType CurOperPlan={0};// I checked this one -
//-in Simulator 3 element array of structure created
现在我将指针传递给我的函数
GetOperationSeqForTransportReq(1,1,&CurOperPlan);
下面是功能
void GetOperationSeqForTransportReq(StationIDType SourseStnID,StationIDType DestiStnID,
OneStageOpType *CurTransportPlan)
{
NOP();
CurTransportPlan[0]->DevID1=5; // This is Ok
CurTransportPlan[1]->DevID1=5; // This is Not working
}
只有第 0 个元素是可访问的。编译器还抱怨结构指针传递给结构数组指针。我尝试在函数中添加指针。它似乎增加了整个 Array 指针。在我看来,这&CurOperPlan
只是指向第 0 个索引结构的地址指针。整个数组不包含它。请帮忙。