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

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

?? printp.c

?? codewarrior_Samples.rar
?? C
字號:
/*********************************************************************/ /*                     SCI PRINT FOR HCS12                                     FOR HCS12                             2003.4.14                              BY Liuyongyi                                   *//*********************************************************************//*********************************************************************//* printp() ------------ a simply version of printf()                */ /**********************************************************************//* with the help of printp() function, you can get the out format as below:   printp("This first line outputs the format string.\n");   printp("%s\n","This second line outputs a string.");   printp( "Notice that the first %s\n","two output lines had CR/LF at the end.");   printp( "%c%c%c%c line outputs 'This' as chars.\n",'T', 'h', 'i', 's');   printp( "Dec values: %d  %d   Hex value: %x\n",dec_value, neg_value, hex_value);   printp( "Long dec values: %ld  %ld\n",ldec_value,lneg_value);   printp( "Output sized strings: %20s %-20s\n","Right string","Left string");   printp( "Output sized values:  %20d %-20d\n",dec_value,neg_value);   printp( "                      %20x %-20x\n",hex_value,hex_value);   printp( "                      %20ld %-20ld\n",ldec_value,ldec_value);where the variables can be as:   int hex_value = 0x1234;   int dec_value = 1234;   int neg_value = -1234;   long ldec_value = 12345678L;   long lneg_value = -12345678L;修改了部分printp()代碼, 打印時如果 %后面的x,d為大寫,打印的數(shù)不區(qū)分正負數(shù)                      為小寫,區(qū)分正負數(shù)                 加l為取長型變量。例如打印如下語句:	printp("\n here i is 0xF123ABCD, j is 0xF123");	printp("\n 1 : %%lX i is: %lX",i);	printp("\n 2 : %%lx i is: %lx",i);	printp("\n 3 : %%lD i is: %lD",i);	printp("\n 4 : %%ld i is: %ld",i);	printp("\n 5 : %%8X i is: %8X",i);	printp("\n 6 : %%8x i is: %8x",i);	printp("\n 7 : %%8D i is: %8D",i);	printp("\n 8 : %%8d i is: %8d",i);	printp("\n 9 :  %%X j is: %X",j);	printp("\n 10:  %%x j is: %x",j);	printp("\n 11:  %%D j is: %D",j);	printp("\n 12:  %%d j is: %d",j);結果為:	 here i is 0xF123ABCD, j is 0xF123	 1 : %lX i is: F123ABCD	 2 : %lx i is: -EDC5433	 3 : %lD i is: 4045646797	 4 : %ld i is: -249320499	 5 : %8X i is:     F123	 6 : %8x i is:     -EDD	 7 : %8D i is:    61731	 8 : %8d i is:    -3805	 9 :  %X j is: F123	 10:  %x j is: -EDD	 11:  %D j is: 61731	 12:  %d j is: -3805  */ /************************************************************************/#include <ctype.h>#include <string.h>#include <stdarg.h>#ifndef  TRUE#define  TRUE 1#endif#ifndef  FALSE#define  FALSE 0#endif#define Baud_9600  55#define Baud_19200 26#define SCI0CR2     (*((volatile unsigned char*)(0x00CB)))#define SCI0SR1     (*((volatile unsigned char*)(0x00CC)))#define SCI0BDH     (*((volatile unsigned char*)(0x00C8)))#define SCI0BDL     (*((volatile unsigned char*)(0x00C9)))#define SCI0DRL     (*((volatile unsigned char*)(0x00CF)))#define CR_as_CRLF  TRUE             // if true , you can use "\n" to act as CR/LF,                                      // if false , you have to use "\n\r",but can get a higher speedvoid uart_init(void) {SCI0CR2=0x0c;SCI0BDH=0x00;SCI0BDL=0x9C;}void uart_putchar(unsigned char ch){while(!(SCI0SR1&0x80)){}         SCI0DRL=ch;}static int do_padding;static int left_flag;static int len;static int num1;static int num2;static char pad_character;/*---------------------------------------------------*//*                                                   *//* This routine puts pad characters into the output  *//* buffer.                                           *//*                                                   */static void padding( const int l_flag){   int i;   if (do_padding && l_flag && (len < num1))      for (i=len; i<num1; i++)          uart_putchar( pad_character);   }/*---------------------------------------------------*//*                                                   *//* This routine moves a string to the output buffer  *//* as directed by the padding and positioning flags. *//*                                                   */static void outs( char* lp){   /* pad on left if needed                          */   len = strlen( lp);   padding( !left_flag);   /* Move string to the buffer                      */   while (*lp && num2--)      uart_putchar( *lp++);   /* Pad on right if needed                         */   len = strlen( lp);   padding( left_flag);   }/*---------------------------------------------------*//*                                                   *//* This routine moves a number to the output buffer  *//* as directed by the padding and positioning flags. *//*                                                   */     	static void reoutnum(unsigned long num, unsigned int negative, const long base ) {   char* cp;   char outbuf[32];   const char digits[] = "0123456789ABCDEF";      /* Build number (backwards) in outbuf             */   cp = outbuf;   do {      *cp++ = digits[(int)(num % base)];      } while ((num /= base) > 0);   if (negative)      *cp++ = '-';   *cp-- = 0;   /* Move the converted number to the buffer and    */   /* add in the padding where needed.               */   len = strlen(outbuf);   padding( !left_flag);   while (cp >= outbuf)      uart_putchar( *cp--);   padding( left_flag);}static void outnum(long num, const long base ,unsigned char sign)//1, signed  0 unsigned{   unsigned int negative;   if ( (num < 0L) && sign )    {  negative=1;      num = -num;      }   else negative=0;      reoutnum(num,negative,base);  } /*---------------------------------------------------*//*                                                   *//* This routine gets a number from the format        *//* string.                                           *//*                                                   */static int getnum( char** linep){   int n;   char* cp;   n = 0;   cp = *linep;   while (isdigit(*cp))      n = n*10 + ((*cp++) - '0');   *linep = cp;   return(n);}/*---------------------------------------------------*//*                                                   *//* This routine operates just like a printf/sprintf  *//* routine. It outputs a set of data under the       *//* control of a formatting string. Not all of the    *//* standard C format control are supported. The ones *//* provided are primarily those needed for embedded  *//* systems work. Primarily the floaing point         *//* routines are omitted. Other formats could be      *//* added easily by following the examples shown for  *//* the supported formats.                            *//*                                                   */void printp( char* ctrl, ...){   int long_flag;   int dot_flag;   char ch;   va_list argp;   va_start( argp, ctrl);   for ( ; *ctrl; ctrl++) {      /* move format string chars to buffer until a  */      /* format control is found.                    */      if (*ctrl != '%') {         uart_putchar(*ctrl);#if CR_as_CRLF==TRUE                  if(*ctrl=='\n') uart_putchar('\r');#endif                  continue;         }      /* initialize all the flags for this format.   */      dot_flag   =      long_flag  =      left_flag  =      do_padding = 0;      pad_character = ' ';      num2=32767;try_next:      ch = *(++ctrl);      if (isdigit(ch)) {         if (dot_flag)            num2 = getnum(&ctrl);         else {            if (ch == '0')               pad_character = '0';            num1 = getnum(&ctrl);            do_padding = 1;         }         ctrl--;         goto try_next;      }            switch (tolower(ch)) {         case '%':              uart_putchar( '%');              continue;         case '-':              left_flag = 1;              break;         case '.':              dot_flag = 1;              break;         case 'l':              long_flag = 1;              break;         case 'd':              if (long_flag ==1 ) {              		if(ch == 'D')                {outnum( va_arg(argp, unsigned long), 10L , 0);continue;}              	        else  /* ch == 'd' */        {outnum( va_arg(argp, long), 10L,1);continue;}                 }              else {              		if(ch == 'D')                {outnum( va_arg(argp, unsigned int),10L,0);continue;}              		else  /* ch == 'd' */        {outnum( va_arg(argp, int), 10L,1);continue;}                }                         case 'x':    // X 無符號 , x  有符號              if (long_flag ==1 )  {              	        if(ch == 'X')                {outnum( va_arg(argp, unsigned long), 16L,0);continue;}              	        else  /* ch == 'x' */        {outnum( va_arg(argp, long), 16L,1);continue;}                  }              else {              		if(ch == 'X')                {outnum( va_arg(argp, unsigned int), 16L,0);continue;}              		else  /* ch == 'x' */        {outnum( va_arg(argp, int), 16L,1);continue;}                 } //如果按照16進制打印,將全部按照無符號數(shù)進行              continue;         case 's':              outs( va_arg( argp, char*));              continue;         case 'c':              uart_putchar( va_arg( argp, int));              continue;         default:              continue;         }      goto try_next;      }   va_end( argp);   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新国产精品久久精品| 亚洲成人av一区二区| 欧美日韩美少妇 | 久久成人精品无人区| 国产精品美女久久福利网站| 69av一区二区三区| 暴力调教一区二区三区| 黄一区二区三区| 日韩福利视频网| 一区二区久久久| 国产精品美女久久久久久2018| 日韩欧美在线一区二区三区| 91成人网在线| av在线免费不卡| 国产激情一区二区三区四区| 麻豆91在线观看| 午夜精品久久久久久不卡8050| 中文字幕亚洲精品在线观看 | 一区二区三区国产豹纹内裤在线| 国产欧美在线观看一区| 日韩一级视频免费观看在线| 欧美日韩日日骚| 欧美丝袜丝nylons| 在线观看av一区| 91国偷自产一区二区三区观看| 99视频精品免费视频| 成人免费高清在线观看| 国产高清不卡二三区| 国产一区二区在线观看视频| 激情文学综合插| 国产呦萝稀缺另类资源| 久久99热这里只有精品| 久久99国产精品免费网站| 免费精品视频在线| 麻豆91免费看| 韩国av一区二区三区四区| 国产制服丝袜一区| 国产一级精品在线| 国产999精品久久| 成人午夜电影久久影院| 成人午夜视频网站| 91蜜桃在线免费视频| 日本高清视频一区二区| 欧美视频精品在线观看| 欧美精品色综合| 日韩视频免费观看高清完整版在线观看| 欧美日韩精品一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩—二三区免费观看av| 奇米777欧美一区二区| 看电视剧不卡顿的网站| 加勒比av一区二区| 成人在线视频一区| 91国偷自产一区二区使用方法| 欧美日韩精品二区第二页| 日韩欧美中文字幕一区| 日本一区二区三区四区在线视频| 国产精品麻豆欧美日韩ww| 亚洲美腿欧美偷拍| 丝袜美腿成人在线| 国产精品一级黄| 色综合久久久久久久| 制服丝袜亚洲播放| 欧美国产欧美综合| 亚洲国产一二三| 久久精品国产免费看久久精品| 国产精品自拍三区| 91成人国产精品| 精品国产乱码久久久久久老虎 | 亚洲精品视频在线观看免费| 亚洲国产精品久久艾草纯爱| 毛片av一区二区| 色综合天天综合网天天看片| 欧美军同video69gay| 久久精品水蜜桃av综合天堂| 亚洲欧美日韩久久| 九九久久精品视频| 91美女福利视频| 日韩一区二区三区视频在线| 国产精品国产三级国产三级人妇| 天天影视网天天综合色在线播放| 国产自产v一区二区三区c| 91精品1区2区| 久久久www免费人成精品| 亚洲综合色丁香婷婷六月图片| 久久 天天综合| 欧洲视频一区二区| 久久久精品tv| 日韩av一区二区三区四区| 成人av在线电影| 欧美xxxx在线观看| 亚洲中国最大av网站| 国产一本一道久久香蕉| 欧美丰满美乳xxx高潮www| 中文字幕在线观看一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 91女神在线视频| 久久久99久久| 免费看日韩精品| 欧美日韩视频在线第一区| 国产精品久久久久7777按摩| 久久精品国产精品青草| 欧美日韩国产精品自在自线| 国产精品蜜臀在线观看| 黄一区二区三区| 67194成人在线观看| 伊人夜夜躁av伊人久久| 成人免费毛片嘿嘿连载视频| 精品91自产拍在线观看一区| 视频一区在线播放| 色婷婷精品久久二区二区蜜臂av | 麻豆91在线播放免费| 在线亚洲欧美专区二区| 国产精品视频线看| 国内精品写真在线观看| 91精品国产日韩91久久久久久| 一区二区三区四区蜜桃| 成人av资源在线观看| 久久久亚洲午夜电影| 国内精品视频一区二区三区八戒| 91精品免费观看| 婷婷国产v国产偷v亚洲高清| 欧美在线视频不卡| 亚洲综合在线免费观看| 一本一道波多野结衣一区二区| 亚洲欧洲成人av每日更新| 国产91富婆露脸刺激对白| 久久久久久久免费视频了| 极品美女销魂一区二区三区免费 | 日韩一级片网站| 丝瓜av网站精品一区二区| 欧美日本韩国一区二区三区视频| 亚洲网友自拍偷拍| 欧美精品在线一区二区三区| 婷婷丁香久久五月婷婷| 91精品国产黑色紧身裤美女| 石原莉奈在线亚洲三区| 4438成人网| 麻豆久久一区二区| 久久女同精品一区二区| 国产精品一区免费视频| 国产欧美va欧美不卡在线| 成人99免费视频| 亚洲黄色小说网站| 欧美亚洲一区二区三区四区| 亚洲成人综合网站| 777亚洲妇女| 韩国一区二区视频| 国产精品久久久久久久久晋中 | 久久国产欧美日韩精品| 久久久午夜精品理论片中文字幕| 粉嫩一区二区三区在线看| 国产精品久久综合| 欧美亚洲国产bt| 免费在线观看一区| 久久久av毛片精品| 色婷婷亚洲综合| 免费黄网站欧美| 国产精品蜜臀在线观看| 欧美视频一区在线| 国产制服丝袜一区| 亚洲欧美激情小说另类| 欧美群妇大交群的观看方式| 国产自产高清不卡| 亚洲欧美另类久久久精品2019| 欧美日韩成人综合在线一区二区| 久久99深爱久久99精品| 最新国产精品久久精品| 69久久99精品久久久久婷婷| 国产成人免费高清| 亚洲国产精品一区二区久久恐怖片 | 懂色av一区二区三区免费观看| 日韩美女久久久| 日韩精品一区二区三区中文精品| 国产成人高清视频| 午夜伦理一区二区| 国产精品午夜电影| 欧美一级二级在线观看| 成人黄色在线网站| 青椒成人免费视频| 亚洲精品自拍动漫在线| 精品成人一区二区| 欧美午夜理伦三级在线观看| 国产在线精品一区在线观看麻豆| 亚洲愉拍自拍另类高清精品| 2017欧美狠狠色| 精品视频免费看| av成人动漫在线观看| 极品少妇xxxx偷拍精品少妇| 亚洲国产人成综合网站| 欧美国产日韩亚洲一区| 日韩一卡二卡三卡国产欧美| 色欧美片视频在线观看在线视频| 久久99精品久久久久婷婷| 一区二区三区av电影| 国产精品传媒视频| 久久久99精品免费观看| 日韩精品专区在线| 欧美日韩第一区日日骚| 色菇凉天天综合网|