打印

还有个问题

[复制链接]
1399|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dingy|  楼主 | 2011-11-22 10:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前用汇编语言编写LCD12864程序会使用DB在程序存储器中开辟一部分空间来存放字库或者图片,如果使用c语言编程,书上的程序定义了一个const类型的数组存放字库(常量类型),该常量数组肯定会占用一定的ROM空间,但是会不会占用RAM空间呢?
沙发
司徒老鹰| | 2011-11-22 10:59 | 只看该作者
不太清楚,用的时候从ROM里调用吧,可能会占用一定。

使用特权

评论回复
板凳
llljh| | 2011-11-22 11:05 | 只看该作者
对于单片机程序而言, const 全局变量会被编译到程序区,也就是说它是存储于ROM空间的,不会占用RAM,其他程序不清楚。

使用特权

评论回复
地板
llljh| | 2011-11-22 11:13 | 只看该作者
如果是短延时,直接while(--n);好了,干嘛还要函数?

如果是长延时,最好用定时器。

使用特权

评论回复
5
zwll| | 2011-11-22 11:24 | 只看该作者
防止形参带0进来,由于先自减而变成了延时65535。

使用特权

评论回复
6
juventus9554| | 2011-11-22 11:32 | 只看该作者
keil c51里面用 code 关键词 定义在分配Rom里面的数表

使用特权

评论回复
7
renyaq| | 2011-11-22 11:37 | 只看该作者
while(){}有一个通俗的理解,反复执行{},直到()里面的值为非或者0,然后结束此语句。

使用特权

评论回复
8
dingy|  楼主 | 2011-11-22 11:40 | 只看该作者
while(--n)相当于while(--n){;}
可以起到延时效果

使用特权

评论回复
9
llljh| | 2011-11-22 12:18 | 只看该作者
当--n非零时,执行{;},起到延时的作用。

使用特权

评论回复
10
supernan| | 2011-11-22 12:25 | 只看该作者
const会把数组放到ROM 里

使用特权

评论回复
11
dingy|  楼主 | 2011-11-22 14:08 | 只看该作者
我是这么理解的
const类型的数组肯定会占用一定的ROM空间,但是作为数组又会占用同样大小的RAM空间,这样太耗资源了,现在我明白了

使用特权

评论回复
12
pengf| | 2011-11-22 14:11 | 只看该作者
前边的if多此一举吧
直接改成 while(n--);不就可以了?

使用特权

评论回复
13
dingy|  楼主 | 2011-11-22 14:16 | 只看该作者
呵呵,是啊,多谢了,结贴了

使用特权

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

本版积分规则

745

主题

10920

帖子

6

粉丝