[PIC®/AVR®/dsPIC®产品] 全局变量、局部变量、静态局部变量

[复制链接]
1601|4
 楼主| 风之牧 发表于 2014-12-25 15:05 | 显示全部楼层 |阅读模式
程序中在一个子函数中定义了一个局部变量,main函数while(1)之前调用了这个函数,然后就一直不停的从main函数执行,执行不到while(1)大循环。把这个变量变为全局变量或者用static声明为静态就正常了。不知道有没有人知道为什么。在网上找了一下,发现有人遇到过,不过我发现并不是“out of scope”的问题。“out of scope”应该是因为程序未执行到这个局部变量,没有分配存储空间造成的。我用断点看了一下watch窗口,局部变量在未执行到时一直显示“out of scope”而执行到的时候是有内存地址的。以下是在网上找到的一个帖子




本帖子中包含更多资源

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

×
aozima 发表于 2014-12-25 17:00 | 显示全部楼层
本帖最后由 aozima 于 2014-12-25 17:02 编辑

1. 执行结果不对是因为 栈溢出

2. 显示
out of scope
是因为生命周期和作用域的原因。
 楼主| 风之牧 发表于 2014-12-26 11:39 | 显示全部楼层
aozima 发表于 2014-12-25 17:00
1. 执行结果不对是因为 栈溢出

2. 显示

栈溢出?能不能麻烦讲解一下?或者我怎样才能检测到?
lanmp 发表于 2014-12-29 17:08 | 显示全部楼层
使指针变量么?把代码贴出来
yewuyi 发表于 2014-12-30 08:17 | 显示全部楼层
贴最简测试代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

312

帖子

1

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