局部变量无法观察,这是何故?

[复制链接]
2862|8
 楼主| fjclcyl 发表于 2010-1-14 15:06 | 显示全部楼层 |阅读模式
本帖最后由 fjclcyl 于 2010-1-14 15:14 编辑

C编译器的版本是9.65的**版。
有注意大小写的问题了。watch窗口提示no found.请高手赐教!!!谢谢!!!!!!
yewuyi 发表于 2010-1-15 09:00 | 显示全部楼层
这个是变量作用域的事情。

提示no found,是因为当前CODE还没有确定这个局部变量的作用域,也就是说,这个局部变量此时还没有被定义,只有发现到被定义后,这个no found就会自动消失,并显示它的地址和变量值。

这个是C语言的基础知识,和PIC AND PICC都没关系,在所有的C编译器中都是类似如此。
 楼主| fjclcyl 发表于 2010-1-15 09:27 | 显示全部楼层
 楼主| fjclcyl 发表于 2010-1-15 09:28 | 显示全部楼层
本帖最后由 fjclcyl 于 2010-1-15 09:29 编辑

回楼上的,你见了附件,就明白我问的了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yewuyi 发表于 2010-1-15 10:08 | 显示全部楼层
你把断点设置到pulse()上看看。

另外,也可能是你的这个变量属于无意义的变量被优化删除掉了。

not found一般就是未成功分配地址的意义。
 楼主| fjclcyl 发表于 2010-1-18 10:11 | 显示全部楼层
更换到9.60版本的编译器下,问题解决了。
牛牛特工 发表于 2010-1-18 15:40 | 显示全部楼层
本帖最后由 牛牛特工 于 2010-1-18 15:42 编辑

局部变量可在local下查看 前提是你进到了对应的函数
如果定义为static 可在watch中直接看到 但其名称会和函数名结合 变成另一个名称
leizi2008 发表于 2010-1-19 09:16 | 显示全部楼层
学习了
xymxym 发表于 2010-1-19 11:19 | 显示全部楼层
一般是被优化掉了,如果确实想看这个变量,可以临时把程序改成如下:

     data_in <<=1;
     if (data_in)
           pulse();
调试完后把if那句去掉,或者直接去改变编译环境的优化等级也可以,但这个不建议!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:世道炎凉,有许多声音却没有真理,有一颗良心却各自藏起。

3

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部