memmov实现

来源:互联网 发布:js判断鼠标在div上 编辑:程序博客网 时间:2024/06/06 00:41

memcpy不支持重叠区域拷贝,但memmov支持。下面针对memmov,个人实现了一个简单的版本

<pre name="code" class="plain">#include <stdio.h>#include <string.h>void* m_memmov(void* dst, void* src, unsigned int cnt){char* s = (char*)src;char* d = (char*)dst;if(NULL == s || NULL == d || 0 == cnt)return dst;if(src >= dst || d >= s + cnt){while(cnt){*d++ = *s++;--cnt;}}else{d += (cnt - 1);s += (cnt - 1);while(cnt){*d-- = *s--;--cnt;}}return dst;}int main(){char p[100] = "123456789";m_memmov(p + 6, p, strlen(p));printf("data = %s\n", p + 6);return 0;}


	
				
		
原创粉丝点击