变量与内存

2019-08-17 03:58发布

今天在STM8S103上添加了一个3K的图片数组,发现编译不通过,原来STM8S103的RAM只有1K,而ROM是8K。编译时数组是不是存放在RAM中所以编译不过。
而加上const后存储在ROM后可以编译通过。
那么问题来了:
   1.数组一开始编译时放在哪?
   2.运行时数组是放在哪?
   3.如果我将一个大型数组存放在24C02中,然后使用一个小型容量的芯片读取出来显示是否会成功。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
王轩
1楼-- · 2019-08-19 00:32
1.数组刚开始编译放在RAM中还是ROM中,取决于你的变量定义,加上const修饰符后,数组存放在ROM中,在程序执行过程当中,加了const修饰符的变量值不能被修改。
2.同1
3.当然会成功,不过你要考虑你怎么把数据存进24C02.
MissLiu
2楼-- · 2019-08-19 05:49
Owen 发表于 2017-6-29 17:17
为什么觉得RAM不能保存数据?RAM掉电数据确实不会保存,但是单片机运行期间,数据都是在RAM里的。我猜你 ...

谢谢
MissLiu
3楼-- · 2019-08-19 08:57
 精彩回答 2  元偷偷看……

一周热门 更多>