|
本帖最后由 brain发烧友 于 2016-3-13 18:29 编辑
哪位大神帮我看看,if内的程序怎么占用了100多个字节,感觉有点不正常。
if(a==6)
{
lcd_mesg_zhongwen(ziku,0,10,3,3); //号
lcd_mesg_zhongwen(ziku,0,10,3,4); //柜
lcd_mesg_zhongwen(ziku,0,10,2,2); //号
lcd_mesg_zhongwen(ziku,0,12,2,3); //门
lcd_mesg_zhongwen(ziku,0,14,2,4); //已
lcd_mesg_zhongwen(ziku,0,16,2,5); //打
lcd_mesg_zhongwen(ziku,0,17,2,6); //开
}
void lcd_mesg_zhongwen(uchar code *adder1,uchar m,uchar n,uchar x,uchar y) // m=1显示一行,m=0单字显示
{
uchar i,j;
if(m==1)
{
set_pox(x,y);
delay(100);
for(j=0;j<16;j++)
{
TransferData(*(adder1+n));
}
m=0;
}
else
{
set_pox(x,y);
delay(100);
for(i=0;i<2;i++)
{
TransferData(*(adder1+n));
adder1++;
}
}
}
用如下的方式写,怎么if语句内的也占用rom,按道理我的数据都是写进同一个数组,所占的字节应该只有64个字节,增加一个if语句应该也就几个字节,为什么还是有100多个字节,多个if语句就好几百个字节了。我们公司的同事用汇编写这种代码就不会占用这么多字节,只是占其中一个if语句的空间。有大神了解这种情况吗?
void dis_first(uchar a) //
{
uchar i;
for(i=0;i<16;i++)
{
dis_buff=ziku[140]; //*
}
dis_buff[16]=ziku[140];dis_buff[17]=ziku[143];
dis_buff[18]=ziku[143];dis_buff[19]=ziku[143];
dis_buff[20]=ziku[120];dis_buff[21]=ziku[121];
dis_buff[22]=ziku[122];dis_buff[23]=ziku[123];
dis_buff[24]=ziku[124];dis_buff[25]=ziku[125];
dis_buff[26]=ziku[126];dis_buff[27]=ziku[127];
dis_buff[28]=ziku[143];dis_buff[29]=ziku[143];
dis_buff[30]=ziku[143];dis_buff[31]=ziku[140];
if(a==1)
{
dis_buff[32]=ziku[140];dis_buff[33]=ziku[143];
dis_buff[34]=ziku[54];dis_buff[35]=ziku[55]; //I
dis_buff[36]=ziku[56];dis_buff[37]=ziku[57]; //C
dis_buff[38]=ziku[32];dis_buff[39]=ziku[33]; //卡
dis_buff[40]=ziku[68];dis_buff[41]=ziku[69]; //智
dis_buff[42]=ziku[70];dis_buff[43]=ziku[71]; //能
dis_buff[44]=ziku[72];dis_buff[45]=ziku[73]; //柜
dis_buff[46]=ziku[143];dis_buff[47]=ziku[140];
}
if(a==2)
{
dis_buff[32]=ziku[140];dis_buff[33]=ziku[143];
dis_buff[34]=ziku[58];dis_buff[35]=ziku[59]; //指
dis_buff[36]=ziku[64];dis_buff[37]=ziku[65]; //静
dis_buff[38]=ziku[66];dis_buff[39]=ziku[67]; //脉
dis_buff[40]=ziku[68];dis_buff[41]=ziku[69]; //智
dis_buff[42]=ziku[70];dis_buff[43]=ziku[71]; //能
dis_buff[44]=ziku[72];dis_buff[45]=ziku[73]; //柜
dis_buff[46]=ziku[143];dis_buff[47]=ziku[140];
}
if(a==3)
{
dis_buff[32]=ziku[140];dis_buff[33]=ziku[143];
dis_buff[34]=ziku[148];dis_buff[35]=ziku[149]; //三
dis_buff[36]=ziku[150];dis_buff[37]=ziku[151]; //合
dis_buff[38]=ziku[152];dis_buff[39]=ziku[153]; //一
dis_buff[40]=ziku[68];dis_buff[41]=ziku[69]; //智
dis_buff[42]=ziku[70];dis_buff[43]=ziku[71]; //能
dis_buff[44]=ziku[72];dis_buff[45]=ziku[73]; //柜
dis_buff[46]=ziku[143];dis_buff[47]=ziku[140];
}
if(a==4)
{
dis_buff[32]=ziku[140];dis_buff[33]=ziku[143];
dis_buff[34]=ziku[58];dis_buff[35]=ziku[59]; //指
dis_buff[36]=ziku[60];dis_buff[37]=ziku[61]; //纹
dis_buff[38]=ziku[68];dis_buff[39]=ziku[69]; //智
dis_buff[40]=ziku[70];dis_buff[41]=ziku[71]; //能
dis_buff[42]=ziku[72];dis_buff[43]=ziku[73]; //柜
dis_buff[44]=ziku[136];dis_buff[45]=ziku[137]; //!
dis_buff[46]=ziku[143];dis_buff[47]=ziku[140];
}
if(a==5)
{
dis_buff[32]=ziku[140];dis_buff[33]=ziku[143];
dis_buff[34]=ziku[50];dis_buff[35]=ziku[51]; //密
dis_buff[36]=ziku[52];dis_buff[37]=ziku[53]; //码
dis_buff[38]=ziku[68];dis_buff[39]=ziku[69]; //智
dis_buff[40]=ziku[70];dis_buff[41]=ziku[71]; //能
dis_buff[42]=ziku[72];dis_buff[43]=ziku[73]; //柜
dis_buff[44]=ziku[136];dis_buff[45]=ziku[137]; //!
dis_buff[46]=ziku[143];dis_buff[47]=ziku[140];
}
for(i=48;i<64;i++)
{
dis_buff=ziku[140]; //*
}
lcd_mesg(dis_buff,1,0);
}
|
|