找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这是一个没有解决的问题

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

正文摘要:

这是一个一个月前提过的问题,一直没有解决,今天再提,看看有没有高手帮助解决。 问题是这样的: w10运行keil5, 如图, ushar NowTem=0 是 main()中的一个局部变量,在watch 中想给其赋一个值试试,结果马上又 ...

回复

ID:134430 发表于 2024-8-30 10:39
问题解决了,重装了keil5, 这次安装在c盘,把以前安装过的痕迹全部删除干净。前几次都是安装在其他盘。
折腾了好几天,谢谢大家!
ID:59202 发表于 2024-8-28 16:53
你最好把程序都贴出来,估计你也不太清楚局部变量和全局变量的深层次使用。局部变量和全局变量是可以同名的,但局部变量使用时会屏蔽同名的全局变量,说穿了还是两个不同的变量。你首先要想清楚怎么使用,在同一个c文件中不同的函数中还是不同的c文件中
ID:466250 发表于 2024-8-28 16:14
你是跨页,多个.c文件使用了相同名字的变量了吧?感觉就是这样所以才需要 extern
ID:134430 发表于 2024-8-28 15:49
蓝蓝小星星 发表于 2024-8-28 10:43
只能说明现在还是处于局部变量上,加个关键词给他,static

刚才试了,不行。
static 是静态变量,它的作用是在下次启动时保持值不变。
现在的问题是一个普通变量,在调试过程中需要改变值看看效果。
ID:466250 发表于 2024-8-28 10:43
只能说明现在还是处于局部变量上,加个关键词给他,static
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 00:18
只看到定义,没看到使用过程
ID:344848 发表于 2024-8-27 06:55
这涉及到局部变量和全局变量的问题,搞清楚它们的关系,可以解决上述问题。
ID:814525 发表于 2024-8-26 17:52
设为全局变量试试

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

Powered by 单片机教程网

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