C语言模拟实现memmove函数

函数原型:

void *mommove(void *dest, const void *src, size_t count);

将由src最指向内存开始的count个元素复制到dest所指向的内存区域

mommove函数存在三个条件:

1、当dest和src相同时不进行操作

2、当dst大于src时,执行正向拷贝

3、当dst小于src时,执行反向拷贝

void *mommove(void *dest, const void *src, size_t count) {
	char* d = (char *)dest;
	const char* s = (const char *)src;                      //可以有非const转换为const,但是反向不可以
	if (d < s) {
		while (count--)
			*d++ = *s++;
	}
	else if(d > s){
		while (count--)
			*(d + count - 1) = *(s + count - 1);
	}

	return dest;
}

参考博客

https://blog.csdn.net/yzy1103203312/article/details/81006029?utm_source=blogxgwz2

猜你喜欢

转载自blog.csdn.net/li1615882553/article/details/83450029