memmove()/mmecpy()

今天用到了memcpy()库函数,然后自己实现了一个结合源码应该是这样的

​
void *memmove(void *dest, const void *src, size_t count) {
	assert((NULL != dest) && (NULL != src) && (count > 0));
	
	char *pdest = (char *)dest;
	const char *psrc = (const char *)src;
	
	if (psrc > pdest) {
		while (count--) {
			*pdest++ = *psrc++;
		}
	} else if (psrc < pdest) {
		psrc += (count-1);
		pdest += (count-1);
		
		while (count--) {
			*pdest-- = *psrc--;
		}
	}
	return dest;
}

​

是否还有更好的办法,请大师指点?

发布了199 篇原创文章 · 获赞 149 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zgaoq/article/details/105372592