Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4842093
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2009-09-28 17:06:21

之前的string.h我已经写过字符串的了.今天就谢谢mem的吧.

 

memcpy, 拷贝不重叠的内存块
void *memcpy(void* pvTo, void* pvFrom, size_t size)
{
assert(pvTo != NULL && pvFrom != NULL);
char* pbTo = (char*)pvTo;
char* pbFrom = (char*)pvFrom;
/* 内存块重叠吗?如果重叠,就使用memmove */
assert(pbTo>=pbFrom+size || pbFrom>=pbTo+size);
while(size-->0)
   *pbTo++ == *pbFrom++;
return pvTo;
}

void *Memmove(void *Dst, const void*Src,size_t count)
{
 assert(Dst && Src);
 char* pDst = (char*)Dst;
 

if (Dst (char*)Src + count)
 {
  while(count--)
   *Dst++ = *Src++;
 } 
else
{
   Dst = (char*)Dst + count - 1;
   Src = (char*)Src + count - 1;
   while(count--)
   {
      *Dst-- = *Src--;
   }
}
return pDst;
}


memset:把buffer所指内存区域的前count个字节设置成字符c

void * Memset(void* buffer, int c, int count)
{
char* pvTo=(char*)buffer;
assert(buffer != NULL);
while(count-->0)
*pvTo++=(char)c;
return buffer;
}

阅读(1470) | 评论(0) | 转发(0) |
0

上一篇:算法题之翻页查找

下一篇:mmap文件总结

给主人留下些什么吧!~~