keil中C语言结构体指针传递时出现警告
typedefxdatastruct{。。。}PidBase;这是定义的结构体。xdatastructPidBase*axi_x;这是结构体指针变量。voidPidPar...
typedef xdata struct{
。。。
} PidBase;
这是定义的结构体。
xdata struct PidBase *axi_x;
这是结构体指针变量。
void PidPara_Init( PidBase *pid ){。。。}
这是实现函数。
PidPara_Init(&axi_x);
这是最终的调用。
最后编译出现警告:warning C182: pointer to different objects.
问题:在最终调用的时候我传递的已经是结构体的指针了,参考了网上和<<C和指针>>的程序,发现他们这么些并不会报错。不知为什么在keil中编译会报错,还有这样子的话函数参数能正确传递吗?
在线等!! 展开
。。。
} PidBase;
这是定义的结构体。
xdata struct PidBase *axi_x;
这是结构体指针变量。
void PidPara_Init( PidBase *pid ){。。。}
这是实现函数。
PidPara_Init(&axi_x);
这是最终的调用。
最后编译出现警告:warning C182: pointer to different objects.
问题:在最终调用的时候我传递的已经是结构体的指针了,参考了网上和<<C和指针>>的程序,发现他们这么些并不会报错。不知为什么在keil中编译会报错,还有这样子的话函数参数能正确传递吗?
在线等!! 展开
展开全部
。。你传参传错了呗。。 PidPara_Init(axi_x); 这样就行了额
如果需要这么传PidPara_Init(&axi_x); 需要 void PidPara_Init( PidBase **pid ){。。。}这样的实现函数
如果需要这么传PidPara_Init(&axi_x); 需要 void PidPara_Init( PidBase **pid ){。。。}这样的实现函数
追问
PidPara_Init(axi_x);
这样子还是会有相同的错误
至于后一个PidBase **pid 编译就通不过。。。
追答
同样的错误 是同样的警告吧? 至于编译不过 是你改了传参 函数里面的实现没改 当然 编译通不过
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询