CCS的编译器会给未初始化的全局变量随机分配一个值,它在存储空间的地址是固定的。局部变量是在运行的时候由程序在栈空间内开辟的一小段储存空间,因此没有一个固定的地址,但是未初始化时会被分配一个随机值。局部变量在的空间在过了声明周期之后就会被回收。
所以在函数调用完毕后这个局部变量后,由于存储空间被收回,所以会出现上述两种情况。望各位大侠不吝赐教!小弟在此谢过。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
各位大侠,现在还有个问题:我在一段串口接收函数(使用查询的工作模式)中定义了一个局部变量:unsigned char uReceive=0; 即已经完成初始化,现在有两个问题:问题一:我没有给DSP发送数据,但在WatchWindow中观测发现:uReceive中刷新后会出现有时为0,有时为几个固定随机数的情况出现,请教这是怎么回事?问题二:我发给DSP 16个数据,接收结果完全正常,接收过程中刷新没有任何问题,但接收完毕后,再次刷新出现了上述问题,这两个问题是不是就如网上所说的:
CCS的编译器会给未初始化的全局变量随机分配一个值,它在存储空间的地址是固定的。局部变量是在运行的时候由程序在栈空间内开辟的一小段储存空间,因此没有一个固定的地址,但是未初始化时会被分配一个随机值。局部变量在的空间在过了声明周期之后就会被回收。
所以在函数调用完毕后这个局部变量后,由于存储空间被收回,所以会出现上述两种情况。望各位大侠不吝赐教!小弟在此谢过。