实现memcpy函数

 1 #include <iostream>
 2 #include <time.h>
 3 
 4 using namespace std;
 5 
 6 char buf1[10010] = { 0 };
 7 char buf2[10020] = { 0 };
 8 
 9 void *myMemcpy(void *dst,void * const src, size_t len)
10 {
11     uint64_t *dst_u64 = reinterpret_cast<uint64_t *>(dst);
12     uint64_t *src_u64 = reinterpret_cast<uint64_t *>(src);
13     size_t n = len;
14 
15     //64位拷贝
16     while (n > sizeof(uint64_t))
17     {
18         *(dst_u64++) = *(src_u64++);
19         n -= sizeof(uint64_t);
20     }
21 
22     uint8_t *dst_u8 = reinterpret_cast<uint8_t *>(dst);
23     uint8_t *src_u8 = reinterpret_cast<uint8_t *>(src);
24 
25     //8位拷贝
26     while (n)
27     {
28         *dst_u8++ = *src_u8++;
29         n -= sizeof(uint8_t);
30     }
31 
32     return dst;
33 }
34 
35 int main()
36 {
37     myMemcpy(buf1, buf2, 10000);
38     cout << "Time: " << clock() << endl;
39     getc(stdin);
40     return 0;
41 }

 

posted @ 2020-03-26 09:53  wa小怪兽  阅读(153)  评论(0编辑  收藏  举报