最近再看别人写的程序,有一个个函数是这样写的:
/**********************************************************
写汉字子函数
**********************************************************/
void ChineseChar(uint x,uint y,int size,uint For_color,uint Bk_color ,char c)
{
int e=0,i,j;
int ed;
uint ncols;
uint nrows;
uint nbytes;
uchar *pfont;
uchar *pchar;
uchar *fonttable[]={(uchar *)hz16,(uchar *)hz24 , (uchar *)hz32};
pfont=(uchar *)fonttable[size];
if(size==0)
{
ncols =16-1;
nrows =16-1;
nbytes =32; //每个字取模的字节数=(16*16)/8
}
else
if(size==1)
{
ncols =24-1;
nrows =24-1;
nbytes =72; //每个字取模的字节数=(24*24)/8
}
else
if(size==2)
{
ncols =32-1;
nrows =32-1;
nbytes =132; //每个字取模的字节数=(32*32)/8
}
pchar=pfont + (nbytes*(c-1));
Address_set(x, y, x+nrows,y+ncols);
for(i=0;i
{
ed=*pchar++;
if(size==0)
{
if(i%2==0)
e=8;
else
e=4;
}
else
e=8;
for(j=0;j
{
if((ed>>j)&0x01)
{
LCD_Write_DATA(For_color>>8 , For_color ); //textcolor
}
else
{
LCD_Write_DATA( Bk_color>>8 , Bk_color); //backcolor
}
}
}
}
上面的红色字体的两个语句表示什么意思呢?求指导。其中hz16,hz24 ,hz32在别的地方定义为
const unsigned char hz16[]={0x00,0x10,...此处省略很多字};
const unsigned char hz24[]={0x00,0x10,...此处省略很多字};
const unsigned char hz32[]={0x00,0x10,...此处省略很多字};
大家讨论讨论。
2