单片机 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
请问这是为什么
程序太长不能全部上传,以上只是最前面一部分 展开
#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
请问这是为什么
程序太长不能全部上传,以上只是最前面一部分 展开
3个回答
展开全部
table3和table4定义后面没有分号;
定义没有什么问题,提示是不能修改的左值,是不是你程序里面使用到了table3和table4?修改了table3和table4里面的数据?
定义没有什么问题,提示是不能修改的左值,是不是你程序里面使用到了table3和table4?修改了table3和table4里面的数据?
追问
程序后面还没写完,我想是没后面没加;号(刚加上去就好了)
还有就是我把code换成data也没事,不知道这是为什么
追答
code换成data一般没事,除非你RAM空间爆了。code含义是该变量放在代码区,也就是Flash ROM区,data含义是数据区,RAM区。如果不需要修改字符串行数据,建议用code,因为ROM区一般比RAM区大很多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后面少“;”
追问
程序后面还没写完,我想是没后面没加;号(刚加上去就好了)
还有就是我把code换成data也没事,不知道这是为什么
追答
code 是说数据放在ROM中
data 是放在RAM中,的直接数据区
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询