打印

急求高手!!!!单片机c语言数组问题?

[复制链接]
2626|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanzhenfei|  楼主 | 2011-8-11 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
liang7143| | 2011-8-11 17:07 | 只看该作者
看手册去
C51中code 是将数组分配在代码段 也就是说 这个数组里面的数据是不可以在修改的

使用特权

评论回复
板凳
johnwjl| | 2011-8-11 19:51 | 只看该作者
const 或 code 类型是不能作为左值的。

使用特权

评论回复
地板
hanzhenfei|  楼主 | 2011-8-11 20:19 | 只看该作者
这个还真不知道,受教了

使用特权

评论回复
5
hanzhenfei|  楼主 | 2011-8-11 20:20 | 只看该作者
明白了 2# liang7143

使用特权

评论回复
6
hanzhenfei|  楼主 | 2011-8-11 20:22 | 只看该作者
我查了资料。code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思,如果code 换成data 应该可以吧
2# liang7143

使用特权

评论回复
7
永远的不知| | 2011-8-12 11:15 | 只看该作者
6# hanzhenfei

用data可以,code相当于常量了,所以不能被赋值。

使用特权

评论回复
8
liang7143| | 2011-8-12 12:25 | 只看该作者
我查了资料。code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句 ...
hanzhenfei 发表于 2011-8-11 20:22

可以

   data     --->    可寻址片内ram
    bdata    --->    可位寻址的片内ram
    idata    --->    可寻址片内ram,允许访问全部内部ram
    pdata    --->    分页寻址片外ram (MOVX @R0) (256 BYTE/页)
    xdata    --->    可寻址片外ram (64k 地址范围)
    code     --->    程序存储区 (64k 地址范围),对应MOVC @DPTR

使用特权

评论回复
9
zbb564833642| | 2011-8-25 14:28 | 只看该作者
受教了

使用特权

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

本版积分规则

0

主题

147

帖子

1

粉丝