C语言模拟实现memset.memcmp函数

页面导航:首页 > 软件编程 > C 语言 > C语言模拟实现memset.memcmp函数

C语言模拟实现memset.memcmp函数

来源: 作者: 时间:2016-01-25 09:50 【

之前我们实现了memmove、memcpy函数进行内存拷贝,仅限我们实现memset与memcmp函数进行内存初始化和内存比较的功能。 memset(void*,int,size_t)其功能试讲传递进来的类型用整形来初始化n个单位
 之前我们实现了memmove、memcpy函数进行内存拷贝,仅限我们实现memset与memcmp函数进行内存初始化和内存比较的功能。
    memset(void*,int,size_t)其功能试讲传递进来的类型用整形来初始化n个单位,核心也是对强制类型转换的理解与运用,代码如下:
void*my_memset(void*str, int set, size_t count)
{
assert(str);
void*p = str;
while (count--)
{
*(int*)str = set;
str = (int*)str + 1;
}
return p;
}

 

    memcmp也是一样的道理,代码如下:
int my_memcmp(void*buf1, void*buf2, size_t count)
{
assert(buf1);
assert(buf2);
while (count--)
{
if (*(char*)buf1 == *(char*)buf2)
{
buf1 = (char*)buf1 + 1;
buf2 = (char*)buf2 + 1;
}
else
{
if (*(char*)buf1 > *(char*)buf2)
{
return 1;
}
else
{
return -1;
}
}
}
return 0;
}

 


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<