c++实现内存拷贝的函数.docVIP

  • 3
  • 0
  • 约4.87千字
  • 约 8页
  • 2016-10-07 发布于湖北
  • 举报
写一个函数,完成内存移动,并为其写一个简单的测试用例来进行测试。 够简单的吧?有的同学很快就写出了答案,详见程序清单1与程序清单2。 程序清单 1 V0.1版程序 void MyMemMove(char *dst,char *src,int count) { while(count--) { *dst++ = *src++; } } 程序清单 2 测试用例 void Test() { char p1[256] = ”hello,world!”; char p2[256] = {0}; MyMemMove(p2,p1,strlen(p1)); printf(“%s”,p2); } 客观地讲,相比那些交白卷或者函数声明都不会写的同学来说,能够写出这段代码的同学已经非常不错了,至少在C语言这门课程上已经达到了现行高校的教育目标,但是离企业的用人要求还有一定的距离。我们不妨将上面的程序称为V0.1版本,看看还有没有什么地方可以改进。 首先我们看看函数声明是否合理,V0.1版的程序将源地址和目的地址都用char *来表示,这样当然也没有什么问题,但是让其他人使用起来却很不方便,假如现在要将count个连续的结构体对象移动到另外一个地方去,如果要使用v0.1的程序的话,正确的写法如下: MyMemMove((char *)dst,(char *)src,sizeof(TheStruct)*co

文档评论(0)

1亿VIP精品文档

相关文档