69,369
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
int memorycpy(void *dst,void *src,size_t n)
{
while(n > 0)
{
if(n>=sizeof(long long)){
*(((long long*&)dst)++)=*(((long long*&)src)++);
n-=sizeof(long long);
}
if(n>=4){
*(((long*&)dst)++)=*(((long*&)src)++);
n-=4;
}
if(n>=sizeof(short)){
*(((short*&)dst)++)=*(((short*&)src)++);
n-=sizeof(short);
}
if(n>=sizeof(char)){
*(((char*&)dst)++)=*(((char*&)src)++);
n -= sizeof(char);
}
}
return 0;
}
int main()
{
char* src="1234567890";
char* dst=(char*)malloc(11);
memorycpy(dst,src,strlen(src) + 1);
printf("%s\n",dst);
return 0;
}
*(((long*)dst)++)=*(((long*)src)++);
*(((short*)dst)++)=*(((short*)src)++);
*(((char*)dst)++)=*(((char*)src)++);