一个结构体的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:38:02
遇到这样一个问题,我在做PID算法
在主函数外边,我定义了一个结构体PID
typedef struct PID
{
int SetPoint;
.
.
long SumError;
};
在主函数中,我定义了struct PID sPID
struct PID *sptr
sptr =&sPID;
有一个子函数,是PID参数初始化用的
void PIDInit()
{
sptr->SetPoint = 0;
.....
}
编译提示错误,sptr undeclearde,没有声明。
于是我改前面定义SPTR的时候,把他声明成static型的
结果还是有错。
请问这是什么问题?

你的struct PID *sptr 在主函数内部定义的,不管怎么样它是不能被另一个函数引用的,即使把它定义为static,它也不能,static只是改变sptr的存储期为静态存储,但它的作用域没改变,始终在主函数内部。

PID *sptr;
这样试试