关于全局变量赋值

[复制链接]
3901|6
 楼主| tong2gang 发表于 2007-1-2 11:34 | 显示全部楼层 |阅读模式
请各DX,理论上是不是单片机RESET的时候不影响RAM的内容是不是?
然后我一开始定义全局变量的时候有赋值初值给它,在程序中修改它的值,那在RESET后这个全局变量会不会又再一次被赋初值呢?怎么我每一次RESET后它的值又变回初值了呢?
xwj 发表于 2007-1-2 11:51 | 显示全部楼层

RESET不影响,但初始化程序会影响啊

C编译器一般都会清空片内或有内存段,

如果“定义全局变量的时候有赋值初值给它”那么也会生成赋值指令,不然怎么实现“定义全局变量的时候有赋值初值给它”?
王紫豪 发表于 2007-1-2 12:32 | 显示全部楼层

如果用keil,你可以看下startup

 楼主| tong2gang 发表于 2007-1-2 12:33 | 显示全部楼层

谢谢

哦,那就是说赋初值命令也是单片机每次RESET之后要执行的命令之一咯!
如果是这样的话就明白啦,谢谢啦!
 楼主| tong2gang 发表于 2007-1-2 12:36 | 显示全部楼层

startup

startup其实有看一下的,一开始我也怀疑是不是startup里面有这种命令,不过实在是功力有限,看不懂startup里面的内容...
xwj 发表于 2007-1-2 12:39 | 显示全部楼层

很好理解的,你单步跟踪一下就明白了

记得关闭Debug的Goto ...main
 楼主| tong2gang 发表于 2007-1-2 12:53 | 显示全部楼层

谢谢楼上的,又学到一点东西!

不过,对于全局变量,就算我不赋初值给它,编译系统也会自动把它置0吧,所以每次RESET之后它的值也会变0,是不是?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

26

帖子

0

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