亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 按C51格式生成漢字字模的.c及.h的windows C源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
		       }
		   }
		   else if( (strncmp(wordBuffer,"else",4)==0) ) {
		       if( _i_SkipAllIfMacro ) {
			     _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		       } else
		       {
			    if( !findDefineTok(_strDefineName) ) {
				 Process_IfMacro() ;
			    }
			    else
			    {
				 _i_SkipAllIfMacro = 1 ;
			    }
			    _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		       }
		   }
		   else if( (strncmp(wordBuffer,"elif",4)==0) ) {
			Process_IfMacro() ;
			 _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		   }
		   else if( strncmp(wordBuffer,"define",6)==0) {
			_if_ParseStatus = PARSE_MACRO_DEFINE_MASK  ;
		   }
		   else if( strncmp(wordBuffer,"endif",5)==0) {
		       _iNest_if_macro-- ;
		       if( _iNest_if_macro == 0 ) {
			   return 1 ;
		       }
		       _if_ParseStatus = PARSE_MACRO_IFDEF_WAIT_ENDIF_MASK ;
		   }
		   else if( strncmp(wordBuffer,"include",7)==0) {
			_if_ParseStatus = PARSE_MACRO_INCLUDE_FILE_MASK;
		   }
		   break ;
	   } ;
    }
}

int ProcessConfigFile()
{
      struct _IF_MARCO_PARAM   _if_macro_param ;

   while(1) {
      if( _head_configfile[_iFileCounter].leadOfconfigBuffer >= _head_configfile[_iFileCounter].sizeOfconfigBuffer ) {
	   if( !GetConfigFile() ) return 0 ;
      }
      if( !GetWordFromConfigFile() ) {
	    return 0 ;
      }


      switch( _iParseStatus ) {
	 case PARSE_NULL :
		   if( strncmp(wordBuffer,"#",1)==0) {
		       _iParseStatus = PARSE_MACRO_MASK ;
		   }
		   break ;
	 case PARSE_MACRO_MASK :
		   if( strncmp(wordBuffer,"if",2)==0) {
			Process_IfMacro() ;
			_iParseStatus = PARSE_NULL ;
		   }
		   else if( strncmp(wordBuffer,"define",6)==0) {
			_iParseStatus = PARSE_MACRO_DEFINE_MASK ;
		   }
		   else if( strncmp(wordBuffer,"include",7)==0) {
			_iParseStatus = PARSE_MACRO_INCLUDE_FILE_MASK;
		   }
		   break ;
	  case PARSE_MACRO_INCLUDE_FILE_MASK:
		   _iFileCounter++ ;
		   ProcessFileName(wordBuffer) ;
		   _head_configfile[_iFileCounter].configFile = fopen(wordBuffer,"r");
		   _iParseStatus = PARSE_NULL ;
		   break ;
	  case PARSE_MACRO_DEFINE_MASK :
		   if( !findDefineTok(wordBuffer) ) {
			 _defineToks[defineTokLast].Value = -1 ;
			 strcpy(_defineToks[defineTokLast].Name,wordBuffer) ;
			 pLastDefineTok = &_defineToks[defineTokLast] ;
			 defineTokLast++ ;
		   }
		   _iParseStatus = PARSE_MACRO_DEFINE_VALUE_MASK ;
		   break ;
	 case PARSE_MACRO_DEFINE_VALUE_MASK :
		   if( strncmp(wordBuffer,"#",1)==0) {
		       _iParseStatus = PARSE_MACRO_MASK ;
		       break ;
		   }
		   else if( wordBuffer[0] != 0 ) {
			pLastDefineTok->Value = atoi(wordBuffer) ;
			_iParseStatus = PARSE_NULL ;
		   }
		   break ;
      }

   }
}

unsigned char _Char2Hex(char p)
{
      if( p >= '0' && p <= '9' ) {
	   return p - '0' ;
      }
      if( p >= 'A' && p <= 'F' ) {
	   return p - 'A' + 0x0A ;
      }
      if( p >= 'a' && p <= 'f' ) {
	   return p - 'a' + 0x0A ;
      }
      return -1 ;
}

#if defined(GBK_DOT_SIZE_16) || defined(GBK_DOT_SIZE_12)
long int HZK_offset(int _hzCode)
{
      int _hzHigh ;
      int _hzLow  ;
      int  X,Y,Z,M ;
      long int offset ;
      int  _hzM ;

      _hzHigh = _hzCode & 0xFF00 ;
      _hzHigh >>= 8 ;
      _hzHigh &= 0xFF ;
      _hzLow  = _hzCode & 0x00FF ;

      if( _hzLow > 0xA0 ) {
	    M = 0x5E ;
	    Y = _hzLow - 0xA1 ;
	    if( _hzHigh > 0xA0 ) {
		    X = _hzHigh - 0xA1 ;
		    Z = 0 ;
	    }
	    else {
		    X = _hzHigh - 0x81 ;
		    Z = 0x2284 ;
	    }
      } else {
	    M = 0x60 ;
	    if( _hzLow > 0x7F )
		  Y = _hzLow - 0x41 ;
	    else
		  Y = _hzLow - 0x40 ;

	    if( _hzHigh > 0xA0 ) {
		  X = _hzHigh - 0xA1 ;
		  Z = 0x3a44 ;
	    }
	    else {
		  X = _hzHigh - 0x81 ;
		  Z = 0x2e44 ;
	    }
      }

      offset = X*M + Y + Z ;
      offset *= HZK_DOT_WIDTH ;
      return offset ;
}
#endif // defined(GBK_DOT_SIZE_16)

#if defined(HZK_DOT_SIZE_16)
long int HZK_offset(int _hzCode)
{
      int _hzHigh ;
      long int offset ;

      _hzCode -= 0xA1A1 ;
      _hzHigh = _hzCode & 0xFF00 ;
      _hzHigh >>= 8 ;
      _hzHigh *= 94 ;
      _hzCode &= 0xFF ;
      _hzCode += _hzHigh ;
      offset = _hzCode ;
      offset *= HZK_DOT_WIDTH ;
      return offset ;
}
#endif // defined(HZK_DOT_SIZE_16)

#if defined(HZK_DOT_SIZE_12)
long int HZK_offset(int _hzCode)
{
      int _hzHigh ;
      long int offset ;

      _hzCode -= 0xA1A1 ;
      _hzHigh = _hzCode & 0xFF00 ;
      _hzHigh >>= 8 ;
      _hzHigh *= 94 ;
      _hzCode &= 0xFF ;
      _hzCode += _hzHigh ;
      offset = _hzCode ;
      offset *= HZK_DOT_WIDTH ;
      return offset ;
}
#endif // defined(HZK_DOT_SIZE_12)

#if defined(FREETYPE2_DOT_SIZE_9)
void OutOneHZ(FT_Face *face,unsigned int unicode,
              FILE *_c_hz_code_file,
              FILE *_h_hz_code_file
             )  // using freetype2 to get bitmap
{
    FT_UInt glyph_index;
    int row, pixel;
    int bi,bj , bMask ;
    char    _hzk_code[200] ;
    char    _buffer[128] ;
    int     _hzTemp,_hzNdx ;
    int     _hzByteSize ;
    int     _hzBitIndex ;


    glyph_index = FT_Get_Char_Index((*face), unicode);
    if(glyph_index == 0) {
        printf("freetype2 font can not found char! unicode as .%d.",unicode) ;
        return ;
    }
    if(FT_Load_Glyph((*face),glyph_index,FT_LOAD_DEFAULT)){
        printf("freetype2 font can not load glyph ! unicode as .%d.",unicode) ;
        return ;
    }
//    if(FT_Render_Glyph((*face)->glyph,FT_RENDER_MODE_MONO)){
//        printf("freetype2 font can not load render glyph ! unicode as .%d.",unicode) ;
//        return ;
//    }

            _hzByteSize = (*face)->glyph->bitmap.width / 8 ;
            if( (*face)->glyph->bitmap.width % 8 ) {
                 _hzByteSize++ ;
            }
            
            for(bi=0;bi<HZK_DOT_WIDTH;bi++) _hzk_code[bi] = 0 ;

            bi    = 0 ;
            bMask = 0x80 ;
            _hzBitIndex = 0 ;

            for(row = 0; row < (*face)->glyph->bitmap.rows; ++row){
               for(pixel = 0; pixel < (*face)->glyph->bitmap_left; ++pixel) {
                   printf("_");
                   bMask >>= 1 ;
                   if( bMask == 0 ) {
                     bMask = 0x80 ;
                     bi++ ;
                   }
                   _hzBitIndex++ ;
                   if( _hzBitIndex >= (*face)->glyph->bitmap.width ) {
                      bi++ ;
                      bMask = 0x80 ;
                      _hzBitIndex = 0 ;
                   }

               }
               for(pixel = 0; pixel < (*face)->glyph->bitmap.width; ++pixel){
                   if( (*face)->glyph->bitmap.buffer
                             [row * (*face)->glyph->bitmap.pitch +
                             pixel/8] & (0xC0 >> (pixel % 8))) {
                       _hzk_code[bi] |= bMask ;
                   }
                   bMask >>= 1 ;
                   if( bMask == 0 ) {
                        bMask = 0x80 ;
                        bi++ ;
                   }
                   _hzBitIndex++ ;
                   if( _hzBitIndex >= (*face)->glyph->bitmap.width ) {
                      bi++ ;
                      bMask = 0x80 ;
                      _hzBitIndex = 0 ;
                   }
                   //printf("%c", ((*face)->glyph->bitmap.buffer
                   //          [row * (*face)->glyph->bitmap.pitch +
                   //          pixel/8] & (0xC0 >> (pixel % 8)))?'#':'_');
               }
               //printf("\n");
            }

	      sprintf(_buffer,"{")  ;
	      fwrite(_buffer, 1, strlen(_buffer), _c_hz_code_file);
	      _hzNdx=0 ;
	      while(_hzNdx<bi) {
		      _hzTemp = _hzk_code[_hzNdx++] & 0xFF ;
		      sprintf(_buffer,"0x%2X,",_hzTemp)  ;
		      if( _buffer[2] == ' ' ) _buffer[2] = '0' ;
		      fwrite(_buffer, 1, strlen(_buffer), _c_hz_code_file);
                      // printf("%s",_buffer) ;
		      if( _hzNdx % 8 == 0 ) {
			    sprintf(_buffer,"\n ")  ;
			    fwrite(_buffer, 1, strlen(_buffer), _c_hz_code_file);
                            // printf("%s",_buffer) ;
		      }
	      }
}

/*
所謂“utf-8”只是UCS Transformation Format,只是UNICODE的一種表現形式,不等同于UNICODE,一般漢字在UNICODE中為兩個(雙)字節表示,而我們看到實際保存的文檔確是三個字節表示一個漢字的,看看下表:

U-00000000 - U-0000007F:  0xxxxxxx
U-00000080 - U-000007FF:  110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF:  1110xxxx 10xxxxxx 10xxxxxx

U-00010000 - U-001FFFFF:  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF:  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF:  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

UTF-8是一種變長度的表達方式,一般UNICODE為雙字節(指UCS2)但為了與以前的ASCII碼兼容,ASCII為一個字節,于是就想出了這種方法,在ASCII碼的范圍用一個字節表示,超出ASCII碼的范圍就用多字節表示,這就形成了我們上面看到的UTF-8的表示方法,這樣的好處是當UNICODE文檔中只有ASCII碼時,保存的文檔都為一個字節,所以就是普通的ASCII文檔無異,讀入的時候也是如此,所以能與以前的ASCII 文檔兼容。

至于大于ASCII碼的,就會由上面的第一字節的前幾位表示該unicode字符的長度,比如110xxxxxx前三位的二進制表示告訴我們這是個 2BYTE的UNICODE字符;1110xxxx是個三位的UNICODE字符,依此類推,而首字節后面的字節都是以10開頭,見上面這是為了與 ASCII碼開頭的0區分告訴我們這是個多字節UTF-8編碼的后續位。看上面的編碼,我們將上面的x部分重新連起來組成的數值就是實際的UNICODE 碼值了(排除10組成的標志位)。

下面是個我寫的從UTF-8轉換到UNICODE真實值的程序,
編譯方法:
gcc utf82unicode.cpp -o utf82unicode -lstdc++

使用方法:
比如一個漢字‘新’字,它的UTF-8編碼為:E696B0,為了知道他的實際UNICODE編碼,執行如下程序,
 ./utf82unicode E696B0
unicode: 65B0
上面程序的輸出結果告訴我們UTF8:E696B0 對應UNICODE:65B0。
*/

int Utf8ToUSC2( char *src_utf8, char *dest_usc2)
{
     if( (src_utf8[0] & 0xF0) == 0xE0 ) // utf8 has 3 bytes
     {   // U-0800 - U-FFFF:  1110xxxx 10xxxxxx 10xxxxxx
          dest_usc2[0]  = (src_utf8[0] & 0x0F) << 4 ;
          dest_usc2[0] |= (src_utf8[1] & 0x3C) >> 2 ;
          dest_usc2[1]  = (src_utf8[1] & 0x03) << 6 ;
          dest_usc2[1] |= (src_utf8[2] & 0x3F) ;
          // UartDump(dest_usc2,2) ;
          return 3 ;
     }
     else if( (src_utf8[0] & 0xE0) == 0xC0 ) // utf8 has 2 bytes
     {   // U-0080 - U-07FF:  110xxxxx 10xxxxxx
          dest_usc2[1]   = (src_utf8[1] & 0x3F) ;
          dest_usc2[1]  |= (src_utf8[0] & 0x03) << 6 ;
          dest_usc2[0]   = (src_utf8[0] & 0x1C) >> 2 ;
          // UartDump(dest_usc2,2) ;
          return 2 ;
     }
     else {  // U-0000 - U-007F:  0xxxxxxx
          dest_usc2[0]  = (src_utf8[0] & 0x7F) ;
          dest_usc2[1]  = 0x00 ;
          // UartDump(dest_usc2,2) ;
          return 1 ;
     }
}

unsigned int convertUnicode(iconv_t _hzIconv,unsigned int gbkCode)
{
      char inbuf[5] ;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合色天天综合色h| 国产精品私人影院| 欧美日产国产精品| 色欧美88888久久久久久影院| 国产99久久久国产精品免费看 | 中文字幕一区二区三区四区不卡| 26uuu亚洲综合色| 久久久激情视频| 欧美国产综合色视频| 中日韩av电影| 尤物av一区二区| 成人亚洲一区二区一| 成人丝袜高跟foot| 91免费在线播放| 欧美日韩国产一级片| 久久精品国产99久久6| 麻豆91在线观看| 国产99久久久国产精品潘金 | 一本大道久久精品懂色aⅴ| 69精品人人人人| 亚洲乱码日产精品bd| 久久av老司机精品网站导航| 欧美精品一二三| 美腿丝袜亚洲综合| 精品国产伦理网| 美国三级日本三级久久99| 99这里只有久久精品视频| 亚洲成人先锋电影| 美腿丝袜亚洲一区| eeuss国产一区二区三区| 色欧美乱欧美15图片| 日韩视频在线永久播放| 国产精品美日韩| 免费观看成人鲁鲁鲁鲁鲁视频| 国产a区久久久| 欧美一级一区二区| 中文字幕日韩精品一区| 另类中文字幕网| 99久久99久久精品免费观看| 欧美老年两性高潮| 最新日韩av在线| 六月丁香婷婷久久| 91高清在线观看| 国产欧美一区二区精品性色超碰| 亚洲福利一区二区| 成人不卡免费av| 精品国偷自产国产一区| 亚洲自拍偷拍九九九| 国产suv一区二区三区88区| 日韩一区二区在线看| 久久久91精品国产一区二区精品| 午夜私人影院久久久久| 国产91精品一区二区麻豆网站| 制服丝袜亚洲色图| 国产精品久久久久久久岛一牛影视| 亚洲国产精品麻豆| 色吧成人激情小说| 日本一区二区久久| 蜜桃精品视频在线| av一二三不卡影片| 中文字幕精品在线不卡| 免费观看一级欧美片| 337p亚洲精品色噜噜狠狠| 亚洲一区自拍偷拍| 日本精品视频一区二区| 亚洲免费在线电影| 91欧美一区二区| 亚洲精品菠萝久久久久久久| 99久久精品国产一区二区三区| 欧美国产日本韩| 国产**成人网毛片九色| 精品国产乱码久久久久久蜜臀 | 日韩视频中午一区| 天天综合日日夜夜精品| 欧美日韩高清在线| 亚洲亚洲精品在线观看| 欧美日韩高清影院| 麻豆91免费看| 久久欧美一区二区| 顶级嫩模精品视频在线看| 国产欧美日韩综合| 波多野结衣一区二区三区| 粉嫩久久99精品久久久久久夜 | 亚洲成av人片一区二区| 欧美日韩亚洲国产综合| 欧美午夜在线观看| 一区二区成人在线| 欧美精品免费视频| 美女性感视频久久| 国产欧美一区二区精品久导航| 成人黄色小视频| 亚洲日本一区二区| 欧美日免费三级在线| 毛片av一区二区| 国产精品国产三级国产| 在线影院国内精品| 久久99精品国产| 亚洲女女做受ⅹxx高潮| 7777女厕盗摄久久久| 国产精品影视在线观看| 亚洲欧美成aⅴ人在线观看| 欧美丰满一区二区免费视频| 狠狠色狠狠色综合系列| 亚洲视频免费在线| 日韩一区二区三区在线视频| 国产盗摄女厕一区二区三区| 97久久超碰国产精品电影| 午夜国产精品影院在线观看| 精品国产污网站| 日本韩国精品在线| 国产美女视频一区| 亚洲成人免费视| 国产女人18毛片水真多成人如厕 | 亚洲精品在线免费观看视频| 国产成人av福利| 天堂av在线一区| 综合久久国产九一剧情麻豆| 欧美一区二区播放| 一本色道久久加勒比精品| 蜜臀久久99精品久久久久久9| 亚洲日本乱码在线观看| 精品99999| 欧美精品在线观看播放| 中文字幕在线观看一区| 欧美zozozo| 欧美在线观看18| 99国产精品视频免费观看| 九九九久久久精品| 亚洲3atv精品一区二区三区| 亚洲丝袜美腿综合| 久久综合九色综合97婷婷 | 蜜桃传媒麻豆第一区在线观看| 亚洲欧美偷拍另类a∨色屁股| 久久久亚洲精品石原莉奈| 亚洲成人手机在线| 亚洲欧洲中文日韩久久av乱码| 国产欧美视频在线观看| 2020国产精品自拍| 91麻豆精品国产91久久久| 欧美性生活影院| 欧美亚洲一区二区在线| 色狠狠一区二区| 91麻豆国产福利精品| 91片在线免费观看| 成人一区二区三区视频| 国产一区二区三区黄视频| 777色狠狠一区二区三区| 欧美日韩aaaaa| 日本韩国欧美在线| 在线观看国产日韩| 欧美日韩一卡二卡三卡| 欧美福利视频导航| 欧美一区二区在线免费播放| 日韩片之四级片| 日韩精品一区二区三区在线观看| 91精品国产手机| 日韩精品一区二区三区视频播放| 日韩一区二区三区免费观看| 蜜桃视频在线观看一区二区| 日韩vs国产vs欧美| 激情深爱一区二区| 国产寡妇亲子伦一区二区| 波多野洁衣一区| 色欧美88888久久久久久影院| 欧美日韩一本到| 欧美不卡视频一区| 国产精品污网站| 一级精品视频在线观看宜春院| 性欧美疯狂xxxxbbbb| 免费成人av在线播放| 狠狠色狠狠色综合系列| 中文字幕第一区综合| 亚洲欧洲在线观看av| 亚洲制服欧美中文字幕中文字幕| 亚洲国产欧美在线| 老色鬼精品视频在线观看播放| 国产成人欧美日韩在线电影| 91丝袜美女网| 欧美一区二区三区成人| 久久看人人爽人人| 亚洲美女在线国产| 免费观看在线色综合| fc2成人免费人成在线观看播放| 日本乱人伦aⅴ精品| 2020日本不卡一区二区视频| 亚洲色图清纯唯美| 狂野欧美性猛交blacked| 99久久777色| 欧美mv日韩mv国产网站| 亚洲人吸女人奶水| 韩国精品一区二区| 色天天综合色天天久久| 欧美精品一区二区三区很污很色的| 国产精品久久久久久久第一福利| 日本免费新一区视频| 91亚洲国产成人精品一区二三| 欧美成人精品3d动漫h| 久久久精品欧美丰满| 欧美男男青年gay1069videost| 久久综合五月天婷婷伊人|