memcmp用法&&实现
目录
-
用法:
头文件:<memory.h>或 <string.h>
函数功能:比较内存区域buf1和buf2的前count个字节。该函数是按字节比较的
函数返回值:
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
函数原型:
int memcmp(const void *str1, const void *str2, size_t n)
-
实现 :
int My_memcmp(const void *dest,const void *src,size_t n)
{
assert(dest!=NULL && src!=NULL && n>0);
const char *pdest=(char*)dest;
const char *psrc=(char*)src;
while(*pdest == *psrc && --n>0)
{
pdest++;
psrc++;
}
int a=*pdest-*pstc;
if(a>0){return 1;}
else if(a<0){return -1;}
else{return 0;}
return a;
}
strcmp && memcmp区别
strcmp比较的字符串,而memcmp比较的是内存块,strcmp需要时刻检查是否遇到了字符串结束的 /0 字符,而memcmp则完全不用担心这个问题,所以memcmp的效率要高于strcmp。
来源:CSDN
作者:zsoros
链接:https://blog.csdn.net/sores/article/details/84586211