当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>通用构造复制函数</b>[VC/C++编程]

赞助商链接



  本文“<b>通用构造复制函数</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在C/C++语言中,将一个组合数据范比方构造各个字段的值复制到另一个相同范例的构造中,可以将其对应字段赋值.这种办法关于各种复杂的构造如多字段构造、嵌套构造,就要写很多行赋值语句,并且假如本来的构造定义更改,程序代码就要随着更改,利用很不便利.本文给出了一个通用的构造复制函数.

假定构造的范例为STRUCT_TYPE.为了提高效率,用指针引入两个构造到函数中;为了通用,这两个指针用肆意指针.函数计划的动身点是,每个构造在内存中各字段持续存放,并且,每个字段可以分化中一个一个的字节.这样,复制构造时,可以让两个构造的对应的每个字节表示的值相等.于是,函数计划以下:

void struct_copy(
  void *p_struct1,  /*构造指针1*/
  void *p_struct2,  /*构造指针2*/
  unsigned int struct_size  /*构造范例长度,可以用sizeof(STRUCT_TYPE)代入*/
      )
  {
  int count=0;
  char *p_char1,*p_char2;
  
  p_char1=(char *)p_struct1;
  p_char2=(char *)p_struct2;
  
  while(count!=struct_size)
  {
    *p_char1=*p_char2;
    p_char1++;
    p_char2++;
    count++;
  }
  }

这个函数在PC机和康柏ALPHA小型机上利用效果不错.

有了这个函数,若有范例同为STRUCT_TYPE的两个构造struct1和struct2,要使struct1各字段的值与struct2各字段的值相等,也就是要把struct2各字段的值赋给struct1,便可以这样调用以上函数:

struct_copy(&struct1, &struct2, sizeof(STRUCT_TYPE));

以上函数简单、通用、有效,对肆意构造范例有效,也合适于别的复杂数据范例,如结合(union)等.风趣的是,它也合适与整形、浮点型等简单数据范例的变量之间复制.

此函数的计划思惟可以应用在很多方面,如进程之间、计算机之间通信时,可以在通信的一方将某些数据范例拆分成字节,到达通信的另一方再将收到的字节拼成呼应的数据范例,这比按位传送要简单、高效得多.


  以上是“<b>通用构造复制函数</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .