您的位置:首页 > 编程语言 > C语言/C++

【C语言】【笔试题】模拟实现memcmp

2015-11-22 17:21 260 查看
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int my_memcmp1(const void *p1, const void *p2, size_t count)//方法1
{
assert(p1);
assert(p2);
char *dest = (char *)p1;
char *src = (char*)p2;
while (count && (*dest == *src))
{
count--;
dest++;
src++;
}
if (count == 0)
return 0;
return *dest - *src;
}
int my_memcmp2(const void *p1, const void *p2, size_t count)//方法2
{
assert(p1);
assert(p2);
int ret = 0;
char *dest = (char *)p1;
char *src = (char*)p2;
while (count && (!(ret = (*dest - *src))))
{
dest++;
src++;
count--;
}
if (ret > 0)
{
return 1;
}
else if (ret < 0)
{
return -1;
}
return 0;

}

int main()
{
int arr1[] = {1,2,3,4,5,6};
int arr2[] = {1,2,3,1000000,5,6};//清楚内存是怎样放置的
int ret = my_memcmp2(arr1, arr2, 16);
printf("%d", ret);
system("pause");
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息