完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
3个回答
|
|
假设51有128个字节的RAM单元可用,你的全局变量用了50个,但是你的一个函数里面,局部变量的定义超过了28个,例如void test(void){ char array[100];} 这么做的话编译器未必会报错,但是单片机在运行时,由于你的局部变量太多了,所以在调用此函数时会冲涮掉你的全局变量。这是一种越界,还有一种越界,是当你定义int i[20]; 执行i[20]=1;甚至i[50]=1;的操作,编译器一般不会报错,但执行明显会涮掉未知领域了。
希望能对你有帮助,想在这一领域共同探讨的话,可以加我微信: baofeng_zouyu |
|
|
|
|
|
是你的数字超过最大值了,跟栈没关系,大的数字改成浮点数,需要的时候再取整即可
|
|
|
|
只有小组成员才能发言,加入小组>>
3148 浏览 9 评论
2841 浏览 16 评论
3349 浏览 1 评论
8734 浏览 16 评论
3944 浏览 18 评论
9563浏览 3评论
905浏览 3评论
466浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
465浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2187浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-28 00:22 , Processed in 1.022036 second(s), Total 84, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191