鱼C论坛

 找回密码
 立即注册
查看: 1826|回复: 7

memcpy

[复制链接]
发表于 2021-9-21 00:50:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. typedef struct MsgInfo
  2.         {
  3.                 MSG                msg;
  4.                 LRESULT result;
  5.                 HANDLE        hEvent;        //句柄

  6.                 MsgInfo(MSG m)
  7.                 {
  8.                         result = 0;
  9.                         memcpy(&msg, &m, sizeof(MSG));
  10.                         hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
  11.                 }

  12.                 MsgInfo()
  13.                 {
  14.                         result = 0;
  15.                         memset(&msg, 0, sizeof(MSG));
  16.                         hEvent = INVALID_HANDLE_VALUE;
  17.                 }

  18.                 MsgInfo(const MsgInfo& m)
  19.                 {
  20.                         result        = m.result;
  21.                         memcpy(&msg, &m.msg, sizeof(MSG));
  22.                         hEvent        = m.hEvent;
  23.                 }


  24.         }MSGINFO;
复制代码


如上,为什么大家都喜欢用"memcpy",而不是直接用"="?比如说memcpy(&msg, &m.msg, sizeof(MSG));写成msg = m.msg,这样和memcpy有什么区别吗?这样写的目的是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-21 06:41:14 | 显示全部楼层
本帖最后由 jhq999 于 2021-9-21 06:48 编辑

数组怎么用"="?
  1. struct a
  2.         {
  3.                 int i;
  4.         };
  5.         struct b
  6.         {
  7.                 int i;
  8.         };
  9.   a aa;
  10. aa.i=1;
  11. b bb;
  12. //怎么让bb=aa?
  13. //却可以
  14. mempy(&bb,&aa,sizeof(aa));
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 13:48:55 | 显示全部楼层
本帖最后由 rt3 于 2021-9-21 13:55 编辑

用= 赋值 技术上是能做到的,通常的办法是结合循环对数组中的所有成员逐个赋值,但还是很麻烦。
不用函数和循环只用=对数组赋值是做不到的;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-21 23:19:30 | 显示全部楼层
jhq999 发表于 2021-9-21 06:41
数组怎么用"="?

重载"="
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-21 23:20:15 | 显示全部楼层
rt3 发表于 2021-9-21 13:48
用= 赋值 技术上是能做到的,通常的办法是结合循环对数组中的所有成员逐个赋值,但还是很麻烦。
不用函数 ...

可以用重载,便于观赏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 06:42:56 | 显示全部楼层

然后还是用循环赋值,画蛇添足
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-22 12:04:41 | 显示全部楼层
jhq999 发表于 2021-9-22 06:42
然后还是用循环赋值,画蛇添足

观赏性高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 12:28:47 | 显示全部楼层
开卷有益,多多益善···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 16:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表