重写memcpy函数

来源:互联网 发布:单身约会软件 编辑:程序博客网 时间:2024/06/07 09:12

适用于32位的系统

#include <stdio.h>#include <string.h>void *memcpy(void *,const void*,size_t);int main(){        int a[10];        int b[10]={0,1,2,3,4,5,6};        int i;        memcpy(a,(const void *)b,sizeof(b));        for(i=0;i<10;i++)                printf("a[%d]:%d\n",i,a[i]);        return 0;}void *memcpy(void *dest,const void* src,size_t n){        unsigned int i= (unsigned int)n;        int  *to      = (int *)dest;        int  *from    = (int *)src;        while(i>0){                if(i<4){                        char *to   =(char *)to;                        char *from =(char *)from;                        for(;i>0;i--){                                *to=*from;                                to++;                                from++;                                i--;                        }                        break;                }                else{                        *to=*from;                        to++;                        from++;                        i-=4;                }        }        return dest;}

main中使用memcpy拷贝b数组内容到a数组中。

输出结果:

a[0]:0
a[1]:1
a[2]:2
a[3]:3
a[4]:4
a[5]:5
a[6]:6
a[7]:0
a[8]:0
a[9]:0

原创粉丝点击