4694| 2
|
栈的流动问题 |
10金钱
最佳答案假设51有128个字节的RAM单元可用,你的全局变量用了50个,但是你的一个函数里面,局部变量的定义超过了28个,例如void test(void){ char array[100];} 这么做的话编译器未必会报错,但是单片机在运行时,由于你的局部变量太多了,所以在调用此函数时会冲涮掉你的全局变量。这是一种越界,还有一种越界,是当你定义int i[20]; 执行i[20]=1;甚至i[50]=1;的操作,编译器一般不会报错,但执行明显会涮掉未知领域了。
希望能对你有帮 ...
| ||
发表于 2018-7-30 09:52:24
|
显示全部楼层
| ||
发表于 2018-7-31 02:03:36
|
显示全部楼层
| ||
|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )
GMT+8, 2024-11-23 18:49
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网