找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1498|回复: 11
收起左侧

这是一个没有解决的问题

[复制链接]
ID:134430 发表于 2024-8-26 13:07 | 显示全部楼层 |阅读模式
这是一个一个月前提过的问题,一直没有解决,今天再提,看看有没有高手帮助解决。
问题是这样的:
w10运行keil5, 如图,
ushar NowTem=0 是 main()中的一个局部变量,在watch 中想给其赋一个值试试,结果马上又恢复0,不能赋值,很不方便调试。
如果,先将其在其他任意一个函数(即使与本函数main没有关系)中定义 uchar NowTem=0;   然后再在main 中声明 extern uchar NowTem; 就行了,想怎么调试都行。
所有的变量都是这样的:要想改变值调试,必须在其他函数中定义,然后声明extern.
这个问题在 keil4 之前从未出现过,有朋友说,是 keil5 的版本问题,我在下载过几次,在 keil 官网也下载过,结果都是这样的,官网上有4个版本,我下的是C51, 官网上没提是32还是64的。
朋友们,有没有碰到过这个问题的?
截图03.png
截图04.png
截图05.png
截图06.png
截图07.png
回复

使用道具 举报

ID:814525 发表于 2024-8-26 17:52 | 显示全部楼层
设为全局变量试试
回复

使用道具 举报

ID:344848 发表于 2024-8-27 06:55 | 显示全部楼层
这涉及到局部变量和全局变量的问题,搞清楚它们的关系,可以解决上述问题。
回复

使用道具 举报

ID:134430 发表于 2024-8-27 22:44 | 显示全部楼层
先谢谢张天师和donglw朋友!
试了,不行的,不管是局部变量还是全局变量,都不能睡意改变值,必须是extern(外部变量)才能改变值。
下面的两个图,一个是局部的,一个是全局的,没错吧?
截图08.png
截图09.png
回复

使用道具 举报

ID:134430 发表于 2024-8-27 22:53 | 显示全部楼层
先谢谢张天师和donglw朋友!
关于局部变量和全局变量,早就试了,不行的,必须是extern(外部变量)才能随意变值调试。
下面的两个图,一个是局部的,一个是旗舰店,没错吧。
截图08.png
截图09.png
回复

使用道具 举报

ID:466250 发表于 2024-8-28 00:18 | 显示全部楼层
只看到定义,没看到使用过程
回复

使用道具 举报

ID:134430 发表于 2024-8-28 09:12 | 显示全部楼层
蓝蓝小星星 发表于 2024-8-28 00:18
只看到定义,没看到使用过程

使用过程,就是改变变量的值,然后看程序运行情况,
譬如,if(NowTem==23){......}     if(NowTem==56){......}  
现在是不能随意改变,永远是初始值,所以不能马上看到NowTem==23 或56时候的运行情况 。
要想看到特定条件下的情况,必须把这个变量在其他函数中定义,然后在本函数中声明是外部变量。
这个问题在keil4 之前是没有的,也就是在w10 使用keil5  调试时才发现的。
这样说清楚了吧。
回复

使用道具 举报

ID:466250 发表于 2024-8-28 10:43 | 显示全部楼层
只能说明现在还是处于局部变量上,加个关键词给他,static
回复

使用道具 举报

ID:134430 发表于 2024-8-28 15:49 | 显示全部楼层
蓝蓝小星星 发表于 2024-8-28 10:43
只能说明现在还是处于局部变量上,加个关键词给他,static

刚才试了,不行。
static 是静态变量,它的作用是在下次启动时保持值不变。
现在的问题是一个普通变量,在调试过程中需要改变值看看效果。
回复

使用道具 举报

ID:466250 发表于 2024-8-28 16:14 | 显示全部楼层
你是跨页,多个.c文件使用了相同名字的变量了吧?感觉就是这样所以才需要 extern
回复

使用道具 举报

ID:59202 发表于 2024-8-28 16:53 | 显示全部楼层
你最好把程序都贴出来,估计你也不太清楚局部变量和全局变量的深层次使用。局部变量和全局变量是可以同名的,但局部变量使用时会屏蔽同名的全局变量,说穿了还是两个不同的变量。你首先要想清楚怎么使用,在同一个c文件中不同的函数中还是不同的c文件中
回复

使用道具 举报

ID:134430 发表于 2024-8-30 10:39 | 显示全部楼层
问题解决了,重装了keil5, 这次安装在c盘,把以前安装过的痕迹全部删除干净。前几次都是安装在其他盘。
折腾了好几天,谢谢大家!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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