[STM32F1] 关于stm32的局部变量

[复制链接]
 楼主| qianguiyi 发表于 2014-11-12 16:40 | 显示全部楼层 |阅读模式
使用环境stm32f1,keil,定义一个局部变量数组(512个元素),编译之后RO区增大了,请问各位大侠,局部变量不是放在栈吗?怎么跑到RO区去了?
搞IT的 发表于 2014-11-12 23:40 | 显示全部楼层
局部变量放在栈中是没错啊、、、
 楼主| qianguiyi 发表于 2014-11-13 08:18 | 显示全部楼层
搞IT的 发表于 2014-11-12 23:40
局部变量放在栈中是没错啊、、、

但是如果太大的数组,编译器好像会优化它,放在RO区
xlsbz 发表于 2014-11-13 11:08 | 显示全部楼层
得知此事要共性。

不同编译器版本 不同编译器 不同的。。。

就有不同的。。。。

一切都以你所用的编译器为标准。
拿起书本 发表于 2014-11-13 13:18 | 显示全部楼层
全局变量的数组初始化不是由你的程序执行的,这就意味着初始数据需要有一个存放的地方,编译器选择了RO-Data。
搞IT的 发表于 2014-11-13 15:14 | 显示全部楼层
qianguiyi 发表于 2014-11-13 08:18
但是如果太大的数组,编译器好像会优化它,放在RO区

真是这样吗,这点我还真没注意到。。
 楼主| qianguiyi 发表于 2014-11-14 08:42 | 显示全部楼层
xlsbz 发表于 2014-11-13 11:08
得知此事要共性。

不同编译器版本 不同编译器 不同的。。。

我使用的是KEIL4
 楼主| qianguiyi 发表于 2014-11-14 08:42 | 显示全部楼层
拿起书本 发表于 2014-11-13 13:18
全局变量的数组初始化不是由你的程序执行的,这就意味着初始数据需要有一个存放的地方,编译器选择了RO-Dat ...

那如果是局部变量数组呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

82

帖子

2

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