memcpy优化 实现高效
来源:互联网 发布:战地mac版 编辑:程序博客网 时间:2024/04/30 04:27
1:函数原型void * memcpy ( void * des, const void * src, size_t size );
它是实现对内存的拷贝,所以还是很高效的,我这里没有考虑字符重叠的情况,只是实现它的高效性,废话不多说直接上代码
1 2 #include <iostream> 3 #include <string.h> 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<<endl; 30 while(mod--) //拷贝剩余的字节 31 { 32 *key++=*t++; 33 } 34 //cout<<"memcpy des :"<<(char*)des<<" src:"<<(char*)src<<endl; 35 return des; 36 } 37 38 int main() 39 { 40 //const char *src="ac"; 41 //const char *src="asc"; 42 //const char *src="abcdefs"; 43 const char *src="abcdegfaaaaaadkdjkjsjjsjki"; 44 int len=strlen(src); 45 char des[1024]; 46 memset(des,'\0',sizeof(des)); 47 Memcpy(des,src,len); 48 cout<<"des :"<<des<<endl; 49 cout<<"src :"<<src<<endl; 50 return 0; 51 } 52
0 0
- memcpy优化 实现高效
- memcpy实现及优化
- memcpy函数实现及其优化
- memcpy函数实现及其优化
- memcpy函数实现及其优化
- memcpy函数实现及其优化
- memcpy函数实现及其优化
- memcpy函数实现及其优化
- memcpy函数实现及其优化
- 实现memcpy、memcpy的优化、memmove、memset、strcpy、strncpy
- memcpy 实现
- memcpy实现
- memcpy实现
- memcpy实现
- memcpy 实现
- memcpy实现
- memcpy实现
- memcpy实现
- 拦截器
- Enumeration和Iterator的区别
- Log4Qt
- Orcale数据库SQL语言总结
- Swift 中使用 SQLite——修改和删除数据
- memcpy优化 实现高效
- Unity 3D:访问另一个C#类中的属性或方法
- PhotoShop基础——如何抠图
- Swift 中使用 SQLite——新增数据
- 基于STM32的红外遥控重点解析
- Qt/C++ 模仿 360安全卫士 10.2版本
- Linux - Ubuntu 安装MySQL
- 连接Linux服务器:Win免费SSH客户端工具
- sql insert into 一次性插入多条数据 从一张表中查询到的数据插入到另一张表