找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言for(index = 0; index < 25; index++) index值不累加是什么原因?

查看数: 2081 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-11-26 20:30

正文摘要:

使用keil 4 调试ABOV芯片,index是一个函数的局部变量,进入for循环后index值不累加

回复

ID:933803 发表于 2021-11-30 08:16
wfqxgw 发表于 2021-11-29 17:05
估计是index是和其它变量冲突了。按标准。用最基本的i.j.k之类的看看。

换个名字就可以了,可是这个index是局部变量,不会冲突啊,这会不会与keil 4 的优化有关
ID:419909 发表于 2021-11-29 17:05
估计是index是和其它变量冲突了。按标准。用最基本的i.j.k之类的看看。
ID:139866 发表于 2021-11-29 16:25
直接看汇编代码,找找放在那个寄存器里了,然后单步运行,盯着这寄存器看
ID:57657 发表于 2021-11-28 13:08
davehua 发表于 2021-11-27 10:08
是不是定义的常量index啊

常亮会被替换成数字,都不可能通过编译。
ID:985547 发表于 2021-11-28 11:34
应该是断点的位置没选好,内存释放了
ID:984993 发表于 2021-11-27 10:08
是不是定义的常量index啊
ID:933803 发表于 2021-11-27 10:00
liht1634 发表于 2021-11-27 09:36
在for处打断点,再单步,就知道了。

就是打了断点在调试窗口看index的值不累加才知道的,这个函数里的index是局部变量,在其他函数里也用到几个index的局部变量,我把这个函数里的index局部变量变为index1,就是换个名字就累加了,我也不知道是什么原因
ID:933803 发表于 2021-11-27 09:57
188610329 发表于 2021-11-26 20:49
不累加? 难道……,你的意思是一直 =0 ,在循环里不出来了? for 变成 while(1) 了?

打断点,在调试窗口不累加,确实是这样的
ID:70035 发表于 2021-11-27 09:36
在for处打断点,再单步,就知道了。
ID:624769 发表于 2021-11-26 20:49
不累加? 难道……,你的意思是一直 =0 ,在循环里不出来了? for 变成 while(1) 了?

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表