很实用的通用复制构造函数

上传人:精****档 文档编号:43982204 上传时间:2018-06-07 格式:DOC 页数:2 大小:24.50KB
返回 下载 相关 举报
很实用的通用复制构造函数_第1页
第1页 / 共2页
很实用的通用复制构造函数_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《很实用的通用复制构造函数》由会员分享,可在线阅读,更多相关《很实用的通用复制构造函数(2页珍藏版)》请在金锄头文库上搜索。

1、 本文属于第 26 期, 适合初级读者 通用结构复制函数作者:余四清在 C/C+语言中,将一个组合数据类型如结构各个字段的值复制到另一个相同类 型的结构中,可以将其对应字段赋值。这种方法对于各种复杂的结构如多字段结构、嵌套 结构,就要写很多行赋值语句,而且如果原来的结构定义更改,程序代码就要随着更改, 使用很不方便。本文给出了一个通用的结构复制函数。假定结构的类型为 STRUCT_TYPE。为了提高效率,用指针引入两个结构到函数 中;为了通用,这两个指针用任意指针。函数设计的出发点是,每个结构在内存中各字段 连续存放,而且,每个字段可以分解中一个一个的字节。这样,复制结构时,可以让两个 结构的

2、对应的每个字节表示的值相等。于是,函数设计如下: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+

3、; p_char2+; count+; 这个函数在 PC 机和康柏 ALPHA 小型机上使用效果不错。有了这个函数,如有类型同为 STRUCT_TYPE 的两个结构 struct1 和 struct2,要使 struct1 各字段的值与 struct2 各字段的值相等,也就是要把 struct2 各字段的值赋给 struct1, 就可以这样调用以上函数: struct_copy( 以上函数简单、通用、有效,对任意结构类型有效,也适合于其它复杂数据类型, 如联合(union)等。有趣的是,它也适合与整形、浮点型等简单数据类型的变量之间复制。此函数的设计思想可以运用在很多方面,如进程之间、计算机之间通信时,可以 在通信的一方将某些数据类型拆分成字节,到达通信的另一方再将收到的字节拼成相应的 数据类型,这比按位传递要简单、高效得多。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号