const类型的数组存放字库

[复制链接]
2346|16
 楼主| chenjunt 发表于 2013-2-19 22:39 | 显示全部楼层 |阅读模式
以前用汇编语言编写LCD12864程序会使用DB在程序存储器中开辟一部分空间来存放字库或者图片,如果使用c语言编程,书上的程序定义了一个const类型的数组存放字库(常量类型),该常量数组肯定会占用一定的ROM空间,但是会不会占用RAM空间呢?
ousj 发表于 2013-2-19 22:39 | 显示全部楼层
不太清楚,用的时候从ROM里调用吧,可能会占用一定。
morrisk 发表于 2013-2-19 22:41 | 显示全部楼层
对于单片机程序而言, const 全局变量会被编译到程序区,也就是说它是存储于ROM空间的,不会占用RAM,其他程序不清楚。
morrisk 发表于 2013-2-19 22:43 | 显示全部楼层
如果是短延时,直接while(--n);好了,干嘛还要函数?

如果是长延时,最好用定时器。
zyf部长 发表于 2013-2-19 22:44 | 显示全部楼层
防止形参带0进来,由于先自减而变成了延时65535。
kangzj 发表于 2013-2-19 22:44 | 显示全部楼层
keil c51里面用 code 关键词 定义在分配Rom里面的数表
kangzj 发表于 2013-2-19 22:45 | 显示全部楼层
while(){}有一个通俗的理解,反复执行{},直到()里面的值为非或者0,然后结束此语句。
 楼主| chenjunt 发表于 2013-2-19 22:45 | 显示全部楼层
while(--n)相当于while(--n){;}
可以起到延时效果
houcs 发表于 2013-2-19 22:46 | 显示全部楼层
当--n非零时,执行{;},起到延时的作用。
liuzaiy 发表于 2013-2-19 22:46 | 显示全部楼层
const会把数组放到ROM 里
 楼主| chenjunt 发表于 2013-2-19 22:47 | 显示全部楼层
我是这么理解的
const类型的数组肯定会占用一定的ROM空间,但是作为数组又会占用同样大小的RAM空间,这样太耗资源了,现在我明白了
ousj 发表于 2013-2-19 22:48 | 显示全部楼层
前边的if多此一举吧
直接改成 while(n--);不就可以了?
pangb 发表于 2013-2-19 22:50 | 显示全部楼层
不同的硬件平台,不同的编译器,实现结果也不一样。
pangb 发表于 2013-2-19 22:50 | 显示全部楼层
调试的时候实际看一下数据所处的地址空间最靠谱。
 楼主| chenjunt 发表于 2013-2-19 22:53 | 显示全部楼层
呵呵,是啊,多谢了
 楼主| chenjunt 发表于 2013-2-19 22:54 | 显示全部楼层
结贴了哦
Redstar2012 发表于 2013-2-22 23:02 | 显示全部楼层
const变量一般常常放在ROM中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

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