程序 问题

2019-03-24 11:56发布

123.JPG

234.jpg
在一个子函数中定义一个数组Time,然后如图所示会给Time赋值,但编译程序时出现如图所示警告,不明白为什么,运行程序后,想查看Time的值,就出现第二张图。把Time定义成全局变量后,就没有上述两个问题了,遇到过好多回这种情况,不明白原因,还请高手指点

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
dontium
1楼-- · 2019-03-24 16:02
< 是提示你,虽然定义了time,但以后也没有用到它,也只是提示你,看看有没有异常
sjtitr
2楼-- · 2019-03-24 20:50
< :TI_MSP430_内容页_SA7 --> 问题一的解答参见沙发,这种提示只出现在:1.没有使用的局部变量,2.没有使用的静态全局变量。注意,给它赋个值,这样的操作还算不上使用。

问题二,调试器告诉你无法获得它的值,是因为当它是一个局部变量时,它只有在它所在的函数运行期间才有意义,所以只有在程序运行暂停在那个函数中,你才能看到这个家伙的值;当然这也不是绝对的,在某些环境,如果在所在的函数里暂停,可是对于该变量的操作已经结束了,本函数后面的运行不再操作该变量了,有时候有些环境也会“聪明”滴提前扔掉该变量。总之,就是你当前的位置上,该变量无意义的意思。这种“无意义”不是逻辑上的无意义,物理上来说这个变量也真的不存在于内存了。
zzbaizhi
3楼-- · 2019-03-24 23:47
 精彩回答 2  元偷偷看……
zzbaizhi
4楼-- · 2019-03-25 00:32
sjtitr 发表于 2014-1-7 22:12
问题一的解答参见沙发,这种提示只出现在:1.没有使用的局部变量,2.没有使用的静态全局变量。注意,给它赋 ...

大侠,我就是在子函数里设的断点,准确的说,是在给Time赋值后设置的断点,可还是看不到Time的值
sjtitr
5楼-- · 2019-03-25 02:24
zzbaizhi 发表于 2014-1-9 09:27
大侠,我就是在子函数里设的断点,准确的说,是在给Time赋值后设置的断点,可还是看不到Time的值

这个问题其实比较复杂,往往因为编译器和调试器太聪明了,导致我们经常跟踪不到变量的值。如果你有用过某些日产的开发环境,可能你还会发现给你一个变量赋了值,可是观察窗口里看它还是没有变化……这只是代表它不能正确追踪到变量的值,不代表赋值不成功。

简单的处理,建议你尝试使用全局变量而不是局部变量,而这样做只是为了调试时能看到它的值,要知道实际上使用局部还是全局,运行结果通常是没有什么不一样的,如果还有问题,可以继续提问。

一周热门 更多>

相关问题

    相关文章