1.memset()内存设置函数(初始化)
void*my_memset(void* dest, intc, size_tcount)
{
assert(dest!= NULL);
char*pdest = (char*)dest;
while(count-->0)
{
*pdest++ = c;
}
returndest;
}
2.memcmp()内存比较函数
intmy_memcmp(constchar* str1, constchar* str2, size_tcount)
{
assert(str1!= NULL&&str2!= NULL);
constchar*pstr1 = str1;
constchar*pstr2 = str2;
intresult = 0;
while(count-- > 0)
{
if((result=*pstr1++-*pstr2++) != '\0')
break;
}
if(result > 0)
result = 1;
elseif(result < 0)
result = -1;
returnresult;
}
3.memcpy()内存拷贝函数
内存拷贝函数是出题率最高的,在实现时需注意内存覆盖的问题
void*my_memcpy(void* dest, constvoid* src, size_tcount)
{
assert(dest!= NULL&&src!= NULL);
char* pdest =(char*) dest;
constchar* psrc =(constchar*) src;
if(psrc > pdest || pdest >= psrc + count)
{
while(count--)
*pdest++ = *psrc++;
}
else
{
while(count--)
{
*(pdest + count) = *(psrc + count);
}
}
returndest;
}
4.memmove()内存移动函数
内存移动函数的实现方法完全跟内存拷贝函数实现方法一样,但在使用中还是有细小差别的。但在这里我们就不详细论述他们的差别了。