|
#include <avr/io.h>
#include<avr/pgmspace.h>
#define uchar unsigned char
#define uint unsigned int
volatile uchar Word_count;
static const prog_uchar PYTABB_a []=
{
"啊阿呵吖锕嗄腌" // 7
};
static const prog_uchar PYTABB_ai []=
{
"爱矮挨哎碍癌艾唉哀蔼隘埃皑捱嗳嫒瑷暧砹锿霭嗌" // 23
};
static const prog_uchar PYTABB_an []=
{
"按安暗岸俺案鞍氨胺厂广谙埯揞犴庵桉铵鹌黯" // 20
};
static const prog_uchar PYTABB_ang []=
{
"昂肮盎" // 3
};
static const prog_uchar PYTABB_ao []=
{
"袄凹傲奥熬懊敖翱澳嚣坳嗷岙廒遨媪骜獒聱螯鏊鳌鏖拗" // 24
};
static const prog_uchar PYTABB_ba []=
{
"把八吧爸拔罢跋巴芭扒坝霸叭靶笆疤耙捌茇菝岜灞钯粑鲅魃"// 26
};
static const prog_uchar PYTABB_bai []=
{
"百白摆败柏拜佰伯稗捭掰呗" // 12
};
static const prog_uchar PYTABB_ban []=
{
"半办班般拌搬版斑板伴扳扮瓣颁绊阪坂钣瘢癍舨" // 21
};
static const prog_uchar PYTABB_bang []=
{
"帮棒绑磅镑邦榜蚌傍梆膀谤蒡浜" // 14
};
static const prog_uchar PYTABB_bao []=
{
"包抱报饱保暴薄宝爆剥豹刨雹褒堡苞胞鲍炮瀑葆孢煲鸨褓趵龅"// 27
};
static const prog_uchar PYTABB_bei []=
{
"被北倍杯背悲备碑卑贝辈钡焙狈惫臂孛邶蓓悖碚鹎褙鐾鞴陂呗"// 27
};
static const prog_uchar PYTABB_ben []=
{
"本奔苯笨夯畚坌锛贲" // 9
};
static const prog_uchar PYTABB_beng []=
{
"蹦绷甭崩迸蚌泵嘣甏" // 9
};
static const prog_uchar PYTABB_bi []=
{
"比笔闭鼻碧必避逼毕臂彼鄙壁蓖币弊辟蔽毙庇敝陛毖痹秘泌匕俾芘荜荸萆薜哔狴庳愎滗濞弼妣婢嬖璧畀铋秕筚箅篦舭襞跸髀吡贲裨"// 57
};
static const prog_uchar PYTABB_bian []=
{
"边变便遍编辩扁贬鞭卞辨辫匾弁苄忭汴煸砭碥窆褊蝙笾鳊髟缏" // 27
};
static const prog_uchar PYTABB_biao []=
{
"表标彪膘婊杓飑飙飚镖镳瘭裱鳔骠" // 15
};
static const prog_uchar PYTABB_bie []=
{
"别憋鳖瘪蹩" // 5
};
static const prog_uchar PYTABB_bin []=
{
"宾濒摈彬斌滨傧豳缤殡膑镔髌鬓玢槟" // 16
};
static const prog_uchar PYTABB_bing []=
{
"并病兵冰丙饼屏秉柄炳禀邴摒槟" // 14
};
static const prog_uchar PYTABB_bo []=
{
"拨波播泊博伯驳玻剥薄勃菠钵搏脖帛般柏舶渤铂箔膊魄卜亳啵饽檗擘礴钹鹁簸跛踣蕃"//37
};
static const prog_uchar PYTABB_bu []=
{
"不步补布部捕卜簿哺堡埠怖埔卟逋瓿晡钚钸醭" // 20
};
....................................
//------------------------------拼音输入法查询码表---------------------------
//数组最后三个数据表示查找表的偏移量和当前相同发音的个数
static const prog_uchar PY_index_a[][8]=
{
{' ',' ',1,0x00,7},
{'i',' ',2,0x00,23},
{'n',' ',3,0x00,20},
{'n','g',' ',4,0x00,3},
{'o',' ',5,0x00,24},
};
static const prog_uchar PY_index_b[][8]=
{
{'a',' ',6,0x00,26},
{'a','i',' ',7,0x00,12},
{'a','n',' ',8,0x00,21},
{'a','n','g',' ',9,0x00,14},
{'a','o',' ',10,0x00,27},
{'e','i',' ',11,0x00,27},
{'e','n',' ',12,0x00,9},
{'e','n','g',' ',13,0x00,9},
{'i',' ',14,0x00,57},
{'i','a','n',' ',15,0x00,27},
{'i','a','o',' ',16,0x00,15},
{'i','e',' ',17,0x00,5},
{'i','n',' ',18,0x00,16},
{'i','n','g',' ',19,0x00,14},
{'o',' ',20,0x00,37},
{'u',' ',21,0x00,20}
};
...........................................................
static const prog_uchar PY_index_end[][8]=
{
{' ',0,0}
};
//*================================================================================================
//"========================================变量声明========================================*/
/************中文起始地址****************************/
/***********存贮不同发音汉字数组的首地址*****************************/
uchar *PY_index[]=
{
PYTABB_a, PYTABB_ai, PYTABB_an, PYTABB_ang, PYTABB_ao, PYTABB_ba,
PYTABB_bai, PYTABB_ban, PYTABB_bang, PYTABB_bao, PYTABB_bei, PYTABB_ben,
PYTABB_beng, PYTABB_bi, PYTABB_bian, PYTABB_biao, PYTABB_bie, PYTABB_bin,
PYTABB_bing, PYTABB_bo, PYTABB_bu,
..................................................................................
};
//------------------------------存储查找表的地址---------------------------------------
unsigned char *(* PY_index_pointer[27])[8]=
{
PY_index_a,PY_index_b,
...................................
PY_index_end
};
/*========================================函数声明========================================*/
//"拼音输入法杳询函数,input_py为已输入的拼音码,反回值为中文的起始地址,当为0时,杳询失败"
//unsigned char code * py_ime(unsigned char input_py_val[]);
/*========================================主程序体========================================*/
/*========================================主程序体========================================*/
unsigned char *py_ime(unsigned char *input_py_val)
{
unsigned char (*p1)[8],(*p2)[8],(*p3)[8];
unsigned char i=1,j=37,count=0;
if (input_py_val[0]==0) return(0); //"如果输入空字符返回0"
if (input_py_val[0]=='i') return(PY_mb_error);
if (input_py_val[0]=='u') return(PY_mb_error);
if (input_py_val[0]=='v') return(PY_mb_error);
p1=p2=PY_index_pointer[input_py_val[0]-0x61]; //"计算入口树根" 97
p3=p2;
while(j--)//匹配已输入拼音和查找表
{
if ((pgm_read_byte(*(p1)+i-1)==input_py_val)&&(pgm_read_byte(*(p1)+i)==input_py_val[i+1]))
{
p2=p1;
if(p3!=p2){count=0;p3=p2;i=1;}
count++;
i++;
}
else p1++;
}
Word_count=pgm_read_byte(*(p2)+count+3)*2;//返回当前相同发音汉字的个数
return (PY_index[pgm_read_byte(*(p2)+count+1)-1+pgm_read_byte(*(p2)+count+2)*255]) ; //返回查询结果首地址"
}
编绎时,这个地方提示以下错误信息
//------------------------------存储查找表的地址---------------------------------------
unsigned char *(* PY_index_pointer[27])[8]=
{
PY_index_a,PY_index_b,
...................................
PY_index_end
};
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:213: warning: initialization from incompatible pointer type
initiall.c:214: warning: initialization from incompatible pointer type |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|