一个不常见的C语言语句
/**********************************************************
写汉字子函数
**********************************************************/
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<nbytes;i++)
{
ed=*pchar++;
if(size==0)
{
if(i%2==0)
e=8;
else
e=4;
}
else
e=8;
for(j=0;j<e;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,...此处省略很多字};
大家讨论讨论。
uchar *fonttable[]={(uchar *)hz16,(uchar *)hz24 , (uchar *)hz32};
这里应该是创建了一个字库组合,用来方便调用,hz16[]等这几个数组应该是用来存放刚读出的字模用的
(uchar *)//这个是做字符类型限制,下面的一样
pfont=(uchar *)fonttable[size];
这里是做了个size判断,是否为16*16、24*24、32*32的屏,具体看传参
从上面上段程序看,这个应该是个LED点阵屏控制板,支持两种或三种颜色,而且支持16*16、24*24、32*32屏
自己建的字库
谢谢解答,但是这种+*号的数组是什么用法?是指针数组?小弟以前没用过这种表达?求解释
请学习一下指针章节,会有答案的。
高端 不懂!
uchar *fonttable[]={(uchar *)hz16,(uchar *)hz24 , (uchar *)hz32};
前面的变量定义是的uchar*型,后面赋值的(uchar *)是将数组名的地址强行转换为uchar*型
指针看着就晕
uchar *fonttable[]={(uchar *)hz16,(uchar *)hz24 , (uchar *)hz32};
(uchar *)为强制类型转换,该数组是指针型数组,元素为这3个字库的地址;
pfont=(uchar *)fonttable[size];
pfont的值(字库地址),由size的值来确定是那个字库地址
表示以后会超越
遇c头就大
顶
果断看不懂什么意思
谢谢分享谢谢分享谢谢分享
谢谢分享谢谢分享 谢谢分享
谢谢分享谢谢分享 谢谢分享
谢谢分享 谢谢分享谢谢分享谢谢分享
谢谢分享 谢谢分享 谢 谢
谢谢分享 谢谢分享 谢 谢
谢谢分享 谢谢分享 分 分
谢谢分享 谢谢分享 享 享
谢谢分享 谢谢分享 谢 谢
谢谢分享 谢谢分享 谢 谢
谢 谢谢分享 谢谢分享 分 分
谢谢 谢谢分享 谢谢分享 享 享
谢谢分 谢谢分享 谢谢分享 谢 谢
谢谢分 谢谢分享 谢 谢
谢谢分谢谢分享 谢 谢
谢谢谢谢 分 分
谢谢 享 享