由于平时极少写代码,遂请同事Vincent给予一个代码的学习清单。自己通过实现这些基本的算法,来达到学习的目的。
Vincent给的清单如下:
-1.memcpy实现
-2.memmove实现
-3.strcpy实现
-4.strcmp实现
-5.stricmp实现
-6.strstr实现
1.冒泡排序
2.选择排序
3.插入排序
4.希尔排序
5.快速排序
6.归并排序
7.堆排序
昨天晚写了一个memcpy的实现。代码如下:
/*
* name: zhangc_memcpy.c
* coder: zonebo2006@gmail.com
* time: 02.01.2012
*/
#include <stdio.h>
void * my_memcpy(void *dest, const void *src, int len)
{
char* tmp_dest = (char*)dest;
const char* tmp_src = (const char*)src;
while(len--)
{
*(tmp_dest++) = *(tmp_src++);
}
return dest;
}
int main(void)
{
int i = 0;int a[] = {0,1,2,3,4,5,6,7,8,9};int b[20];
my_memcpy(b,a,sizeof(a));
for(i = 0;i < sizeof(a)/sizeof(a[0]); i++)
{
printf("%d\n",b[i]);
}
return 0;
}
听说glibc中的代码实现效率极高,去看看。