单片机 C语言 关于数组的问题

#include<reg52.h>#defineucharunsignedchar//声明uchar就是unsignedchar#defineuintunsignedin... #include <reg52.h>
#define uchar unsigned char //声明uchar就是unsigned char
#define uint unsigned int //声明uint就是unsigned int
uchar code table1[]="I LOVE YOU!";
uchar code table2[]=" 51-MIC.";

/* uchar code table3[]="Hello everyone!"
uchar code table4[]="Welcome to here!" */

sbit lcden=P2^2; //1602 E脚
sbit lcdrs=P2^0; // RS脚
sbit lcdrw=P2^1; // R/W脚
uchar num ;

这个程序把table3,table4注释掉后没什么问题,不释掉就会报 error C183: unmodifiable lvalue
请问这是为什么
程序太长不能全部上传,以上只是最前面一部分
展开
 我来答
eternal_fade
2012-09-10
知道答主
回答量:9
采纳率:0%
帮助的人:9.1万
展开全部
你注释的内容没有分号,去掉注释你把分号加上了么?
追问
不是这个问题,在百度找了相关问题,我刚把code写成data就没事了,为什么
刚加了;号也可以,这又是为什么
追答
加code意味着你是把程序存放于rom之中,程序运行中无法修改,所以会提示你那个错误。怀疑设置问题,你可以考虑下,在[]之间加个空格,改为[ ],养成好习惯了。
kenlee_gz
2012-09-10 · TA获得超过494个赞
知道小有建树答主
回答量:457
采纳率:33%
帮助的人:356万
展开全部
table3和table4定义后面没有分号;
定义没有什么问题,提示是不能修改的左值,是不是你程序里面使用到了table3和table4?修改了table3和table4里面的数据?
追问
程序后面还没写完,我想是没后面没加;号(刚加上去就好了)
还有就是我把code换成data也没事,不知道这是为什么
追答
code换成data一般没事,除非你RAM空间爆了。code含义是该变量放在代码区,也就是Flash ROM区,data含义是数据区,RAM区。如果不需要修改字符串行数据,建议用code,因为ROM区一般比RAM区大很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
byzxybd
2012-09-10 · TA获得超过455个赞
知道小有建树答主
回答量:731
采纳率:100%
帮助的人:426万
展开全部
后面少“;”
追问
程序后面还没写完,我想是没后面没加;号(刚加上去就好了)
还有就是我把code换成data也没事,不知道这是为什么
追答
code 是说数据放在ROM中
data 是放在RAM中,的直接数据区
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式