博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
string.hのmemmove的实现
阅读量:7223 次
发布时间:2019-06-29

本文共 769 字,大约阅读时间需要 2 分钟。

函数原型

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

 功能

由st2指内存区域复制n个字节到st1所指内存区域   (抄至百度百科)

返回值

函数返回st1值

包含头文件

string.h

函数的使用

#include<stdio.h>

#include<string.h>

int main(void)

{

  char str[12];

  memmove(str,"hello world",12);

  printf("%s\n",str);

  return 0;

}

函数的实现

void *memmove(void *st1,const void *st2,size_t n)

{

  char *str1_t=(char *)st1;

  const char *str2_t=(char *)st2;

  if(str2_t > str1_t)

  {

     while(0<n)

     {

        *str1_t++=str2_t++;

        --n;

      }

   }else

   if(str2_t < str1_t)  /*如果源地址小于目标地址,则执行反向拷贝*/

   {

      str1_t = str1_t+n-1;

        str2_t = str2_t+n-1;

      while(0<n)

        {
          *str1_t-- = *str2_t--;
          --n;
        }

    }

  return st1;

}

转载于:https://www.cnblogs.com/Sinnerse/archive/2013/03/31/2991319.html

你可能感兴趣的文章
【阅读】《千万不要让关系数据库跟这十样事物掺合到一起》要点
查看>>
关于CLR、CIL、CTS、CLS、CLI、BCL和FCL
查看>>
回调函数
查看>>
jquery插件开发样例-jquery插件开发(1)
查看>>
Android 基本UI控件
查看>>
数据库内核月报 - 2015 / 10-MySQL · 特性分析 · 跟踪Metadata lock
查看>>
fedora 中设置mysql编码
查看>>
jquery选择器案例
查看>>
【存储】megacli 常用参数介绍
查看>>
基于CoreText的基础排版引擎之不带图片的排版引擎
查看>>
椒盐噪声
查看>>
可动态扩展的数据库模型设计
查看>>
Spring MVC视图解析器:配置多个视图解析器的优先级
查看>>
J.U.C并发框架
查看>>
纸上谈兵: 伸展树 (splay tree)[转]
查看>>
Hibernate_学习之问题集
查看>>
退出、测试、判断及操作符
查看>>
ClassNotFoundException和NoClassDefFoundError的区别
查看>>
查看perl模块和cpan模块介绍
查看>>
使用微信登录
查看>>