memcpy优化 实现高效


1:函数原型void * memcpy ( void * des, const void * src, size_t size );

它是实现对内存的拷贝,所以还是很高效的,我这里没有考虑字符重叠的情况,只是实现它的高效性,废话不多说直接上代码

1 
  2 #include 
  3 #include 
  4 using namespace std;
  5 
  6 void* Memcpy(void *des,const void *src,size_t len)
  7 {
  8         size_t size=len/4;//计算有多少bit位,用整数一次性拷贝,效率高
  9         size_t mod=len%4; //剩下的bit位
 10         int Len=size;    //作个临时变量,后面会用到
 11 
 12         //把他们都转化成整数,这样一次性就可以拷贝四个字节
 13         int *Des=(int*)des;
 14         int *SRC=(int*)src;
 15 
 16         while(size--)
 17                 *Des++=*SRC++;
 18 
 19         //没有多余的字节,即已经拷贝完成
 20         if(mod==0)
 21                 return des;
 22 
 23         char *t=(char*)src;
 24         t+=Len*sizeof(int);//让t前面已经拷贝的下一个字节
 25 
 26         char *key=(char*)des;
 27         key+=Len*sizeof(int);//同理
 28 
 29         //cout<<"des :"<<(char*)des<<"  src:"<<(char*)src<

你可能感兴趣的:(code---c++,数据结构/算法)