以下代码没有考虑重叠的情况
//strcpy
char *__strcpy(char *dest, const char *src)
{
if(dest == NULL || src == NULL)
return NULL;
char *strdest = dest;
while((*dest++ = *src++) != '\0')
return strdest;
}
//memcpy
char *__memcpy(void *memTo, const void *memFrom, size_t size)
{
char *tmpTo = (char*)memTo;
const char *tmpFrom = (const char *)memFrom;
if(memTo == NULL || memFrom == NULL)
return NULL;
while(size-- > 0)
{
*tmpTo++ = *tmpFrom++;
}
return memTo;
}