完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
例如:
void delay(uint z) { uint x, y; for(x = z; x > 0; x--) for(y = 110; y > 0; y--); } 我在调试时,观察X和Z的变化情况,发现z和x的值相同,然后做相同的变化。为什么形参也会发生变化? |
|
相关推荐
3 个讨论
|
|
|
我把函数里面的,局部变量uint y,写成了全部变量,结果,是这样的,watch1窗口中,直接出现了y,值为0x00,x和z变化情况,还是和x的值相同,做相同的变化,而y的值,单步执行的情况下,值一直为0x00,直接run,然后stop,y的值有变化。还是没有明白为什么,z和x的值和变化情况一直相同,我的理解是,当delay(10)函数被调用后,z应该一直为0x0A,x变化。 |
|
|
|
|
|
|
|
dsl7410 发表于 2017-8-19 15:43 void delay(uint z) { uint x, y; for(x = z; x > 0; x--) for(y = 110; y > 0; y--); } 这里的uint z是形参,也就是这个函数调用的时候这个Z是临时存在栈空间上面的。我说的实验是定义个全局变量,将它传参给delay,同时你可以监测这个全局变量的值,它是不会变的。 从你描述的情况上来看,可能是x和z是一个地址的数据,有可能被编译器优化了,你查看一下变量的地址。局部变量的值在函数调用结束后会被销毁的,卡好断点。 |
|
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16901 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:39 , Processed in 0.536606 second(s), Total 39, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1423