设为首页 加入收藏

TOP

几个C库函数的源码
2013-11-20 14:18:39 】 浏览:287
Tags:几个 函数 源码

  C库函数的源码

  void * my_memccpy(void *dest,const void *src,int c,int count)

  {

  while ( count && (*((char *)(dest = (char *)dest + 1) - 1) =

  *((char *)(src = (char *)src + 1) - 1)) != (char)c )

  count--;

  return(count dest : NULL);

  }

  //memset

  void *my_memset(void *buffer, int c, int count)

  {

  char* p = (char*)buffer;

  while(count--)

  *p++ = (char)c;

  return buffer;

  }

  //memcpy

  void * my_memcpy(void *dst,const void *src,int count)

  {

  void * ret = dst;

  while (count--)

  {

  *(char *)dst = *(char *)src;

  dst = (char *)dst + 1;

  src = (char *)src + 1;

  }

  return(ret);

  }

  //memmove

  /*

  memmove()由src所指定的内存区域赋值count个字符到dst所指定的内存区域。

  src和dst所指内存区域可以重叠,但复制后src的内容会被更改。函数返回指向dst的指针。

  */

  void * my_memmove(void * dst,const void * src,int count)

  {

  void * ret = dst;

  if (dst <= src || (char *)dst >= ((char *)src + count))

  {

  while (count--)

  {

  *(char *)dst = *(char *)src;

  dst = (char *)dst + 1;

  src = (char *)src + 1;

  }

  }

  else

  {

  dst = (char *)dst + count - 1;

  src = (char *)src + count - 1;

  while (count--)

  {

  *(char *)dst = *(char *)src;

  dst = (char *)dst - 1;

  src = (char *)src - 1;

  }

  }

  return(ret);

  }

  char * __cdecl strcpy(char * dst, const char * src)

  {

  char * cp = dst;

  while( *cp++ = *src++ )    ;

  return( dst );

  }

  char * strcat (char * dst, char * src)

  {

  char * cp = dst;

  while( *cp )

  ++cp;   /* Find end of dst */

  while( *cp++ = *src++ )

  /* Copy src to end of dst */

  return( dst );

  }

  int my_strlen(const char * str )

  {

  const char *p = str;

  while( *p++ ) ;

  return( (int)(p - str - 1) );

  }

  //strcmp

  int my_strcmp(const char *string1, const char *string2 )

  {

  int ret;

  while(    ( ret=*(unsigned char *)string1++ -*(unsigned char *)string2++)==0 &&   string1  );

  return ret;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言位运算符的基础普及 下一篇C语言排序算法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目