📄 lib.c.svn-base
字号:
#include "lib.h"#include "arch.h"__attribute__ ((weak))void memset (char* p, char c, rt_uint32 size){ for (;size--;) *(p++)=c;}__attribute__ ((weak))void *memcpy (void* dst, const void* src, rt_uint32 len){ unsigned char* d = (unsigned char*) dst; unsigned char* s = (unsigned char*) src; while (len-- > 0)*d++ = *s++; return dst; }__attribute__ ((weak))rt_uint32 strlen(const char *s){ const char *sc; for (sc = s; *sc != '\0'; ++sc) ;/* nothing */ return sc - s;}__attribute__ ((weak))rt_uint32 strncmp(const char* cs, const char* ct, rt_uint32 count){ register signed char __res = 0; while (count) { if ((__res = *cs - *ct++) != 0 || !*cs++) break; count--; } return __res;}__attribute__ ((weak))char *strncpy(char *dest, const char *src, rt_uint32 n){ char *a = dest; const char *b = src; /* clean destination */ memset(dest, 0, n); while (n--) { *a++ = *b; if (*b == 0) break; b++; } return dest;}/** convert string to long interger */rt_int32 atol(const char *str){ rt_int32 val = 0; while (*str == ' ') str++; while (*str >= '0' && *str <= '9') { val *= 10; val += (long)(*str - '0'); str++; } return val;}static void puthexd(rt_uint8 digit){ char table[]="0123456789ABCDEF"; rt_putc(table[digit]);}static void putdec(rt_uint32 byte){ rt_uint8 b1; rt_int32 nb; int b[30], i = 0; while(1) { b1 = byte%10; b[i] = b1; nb = byte/10; if(nb<=0) break; i++; byte=nb; } for(nb = i+1; nb > 0; nb--) { puthexd(b[nb-1]); }}static void puthex(rt_uint8 byte){ rt_uint8 lb, rb; lb=byte >> 4; rb=byte & 0x0F; puthexd(lb); puthexd(rb);}static void puthexi(rt_uint32 dword){ puthex( (dword & 0xFF000000) >>24); puthex( (dword & 0x00FF0000) >>16); puthex( (dword & 0x0000FF00) >>8); puthex( (dword & 0x000000FF));}static void vprintf(const char *fmt, va_list args){ while (*fmt) { switch (*fmt) { case '%': fmt++; switch (*fmt) { case 's': rt_puts(va_arg(args, char *)); break; case 'c': rt_putc(va_arg(args, unsigned int)); break; case 'i': putdec(va_arg(args, unsigned int)); break; case 'x': puthex(va_arg(args, unsigned int)); break; case 'X': puthexi(va_arg(args, unsigned int)); break; } break; default: rt_putc(*fmt); break; } fmt++; }}void printf(const char *fmt, ...){ va_list args; va_start(args, fmt); vprintf(fmt, args); va_end(args);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -