memcpy和strcpy函数的内部实现
一、memcpy函数的内部实现
1 void *memcpy(void *dst, const void *src, size_t _Size) 2 { 3 assert(dst != NULL && src != NULL); //判断指针是否为空 4 5 char *pDst = (char *)dst; //转换为char型指针 6 char *pSrc = (char *)src; //转换为char型指针 7 8 while(_Size--) //拷贝_Size个字节 9 { 10 *pDst++ = *pSrc++; 11 } 12 13 return dst; //返回目标内存的首地址 14 }
二、strcpy函数的内部实现
1 char *strcpy(char *dst, const char *src) 2 { 3 assert(dst != NULL && src != NULL); //判断指针是否为空 4 5 char *address = dst; //记录目标字符串首地址 6 7 while((*dst++ = *src++) != '\0'); //字符拷贝且拷贝'\0' 8 9 return address; //返回目标字符串首地址 10 }
注意:使用的时候需要添加头文件#include<assert.h>