⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lib.c.svn-base

📁 RT-Thread是发展中的下一代微内核嵌入式实时操作系统
💻 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 + -