打印
[STM32F1]

关于stm32的局部变量

[复制链接]
1945|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
得知此事要共性。

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

就有不同的。。。。

一切都以你所用的编译器为标准。

使用特权

评论回复
5
拿起书本| | 2014-11-13 13:18 | 只看该作者
全局变量的数组初始化不是由你的程序执行的,这就意味着初始数据需要有一个存放的地方,编译器选择了RO-Data。

使用特权

评论回复
6
搞IT的| | 2014-11-13 15:14 | 只看该作者
qianguiyi 发表于 2014-11-13 08:18
但是如果太大的数组,编译器好像会优化它,放在RO区

真是这样吗,这点我还真没注意到。。

使用特权

评论回复
7
qianguiyi|  楼主 | 2014-11-14 08:42 | 只看该作者
xlsbz 发表于 2014-11-13 11:08
得知此事要共性。

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

我使用的是KEIL4

使用特权

评论回复
8
qianguiyi|  楼主 | 2014-11-14 08:42 | 只看该作者
拿起书本 发表于 2014-11-13 13:18
全局变量的数组初始化不是由你的程序执行的,这就意味着初始数据需要有一个存放的地方,编译器选择了RO-Dat ...

那如果是局部变量数组呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

82

帖子

2

粉丝