#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void* my_memcpy(void* dst, const void* src, size_t count)//内存拷贝函数
{
assert(dst);
assert(src);
char* ret = (char*)dst;
char* _dst = ret;
char* _src = (char*)src;
while (--count)
{
*_dst++ = *_src++;
}
return dst;
}
void* my_memove(void* dst, const void* src, size_t count)
{
assert(dst);
assert(src);
char* ret = (char*)dst;
char* _dst = ret;
char* _src = (char*)src;
if ((_dst<_src) || (_dst>_src + count))
{
while (count--)
{
*_dst++ = *_src++;
}
}
else
{
_dst = ret + count - 1;
_src = _src + count - 1;
while (count--)
{
*_dst-- = *_src--;
}
}
return dst;
}
void* my_memset(void* ptr,int value,size_t num)
{
assert(ptr);
char* ret = (char*)ptr;
while (num--)
{
*ret++ = (char)value;
}
return ptr;
}
int my_mem
模拟实现mem函数
最新推荐文章于 2022-10-25 17:08:02 发布
这篇博客介绍了如何用C语言模拟实现内存操作函数,包括my_memcpy()用于内存拷贝,my_memmove()处理重叠区域的内存移动,my_memset()用于设置内存区域的值,以及my_memcmp()用于比较两个内存区域的内容。通过这些函数,读者可以更好地理解和掌握C语言中内存操作的基本原理。
摘要由CSDN通过智能技术生成