打印
[国产单片机]

字符串数组

[复制链接]
680|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ty1649|  楼主 | 2017-1-12 20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天遇到一个问题,没看懂,还请大家帮忙解答下?
函数原型:  目的是为了在一维数组中找出与字符串相对应的输出字节
//其中hz是一个字符串,如 ‘请稍后’!  HZ_DOTS是一个一维数组,存放的是汉字经过取模软件后生成的16进制字节。
static unsigned char const *get_hz_dots(unsigned char *hz)
{
        unsigned char const *hzp=HZ_DOTS;
        short c,mn,mx;
        signed char cmp;
        mn=0;
        mx=sizeof(HZ_DOTS)/34-1;//最大汉字数
        while(1)
        {
            c=(mn+mx)/2;
            hzp=HZ_DOTS+c*34;//从1/2长度开始
           while(1)
           {
             if( (cmp=hzp[0]-hz[0]))   ////这里不明白为什么会这样用?
                                break;
                        cmp=hzp[1]-hz[1];
                        break;
                }       
                if(!cmp)
                        return hzp+2;
               
                if( (c==mx) && (c==mn) )
                        break;
                if(c==mn)
                {
                        mn=mx;
                        continue;
                }
                if( !(cmp&0x80))  //cmp>0
                {
                        mx=c;
                }
                else
                {
                        mn=c;
                }
        }
        return  HZ_DOTS+2;
}

相关帖子

沙发
ty1649|  楼主 | 2017-1-13 10:43 | 只看该作者
明白了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

36

帖子

0

粉丝