本人编写的51单片机软件过程中,有如下一个函数:
unsigned char UART2_GetReceived(void)//报告已接收
{
unsigned char pdata c;
if(ReceiveLength2>0)
{
c=ReceiveLength2;
ReceiveLength2=0;
return c;
}
else
return 0;
}
后来这个函数不再被主程序调用,我就把它删了,但删了后软件就不能正常运行,所以这感到很奇怪,为什么一个未调用的函数不能删掉呢?
我保留这个函数,但修改至如下,软件仍能正常运行:
unsigned char UART2_GetReceived(void)//报告已接收
{
unsigned char pdata c;
return 0;
}
我再把它改为如下所示,软件又不能正常运行了:
unsigned char UART2_GetReceived(void)//报告已接收
{
return 0;
}
看来是unsigned char pdata c若的祸,可这个变量是函数内部变量,它被去掉后为什么会影响到软件的运行呢?
在下十分不解,请各们大侠相助!
|