memcpy
typedef struct MsgInfo{
MSG msg;
LRESULT result;
HANDLE hEvent; //句柄
MsgInfo(MSG m)
{
result = 0;
memcpy(&msg, &m, sizeof(MSG));
hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
}
MsgInfo()
{
result = 0;
memset(&msg, 0, sizeof(MSG));
hEvent = INVALID_HANDLE_VALUE;
}
MsgInfo(const MsgInfo& m)
{
result = m.result;
memcpy(&msg, &m.msg, sizeof(MSG));
hEvent = m.hEvent;
}
}MSGINFO;
如上,为什么大家都喜欢用"memcpy",而不是直接用"="?比如说memcpy(&msg, &m.msg, sizeof(MSG));写成msg = m.msg,这样和memcpy有什么区别吗?这样写的目的是什么? 本帖最后由 jhq999 于 2021-9-21 06:48 编辑
数组怎么用"="?struct a
{
int i;
};
struct b
{
int i;
};
a aa;
aa.i=1;
b bb;
//怎么让bb=aa?
//却可以
mempy(&bb,&aa,sizeof(aa));
本帖最后由 rt3 于 2021-9-21 13:55 编辑
用= 赋值 技术上是能做到的,通常的办法是结合循环对数组中的所有成员逐个赋值,但还是很麻烦。
不用函数和循环只用=对数组赋值是做不到的; jhq999 发表于 2021-9-21 06:41
数组怎么用"="?
重载"=" rt3 发表于 2021-9-21 13:48
用= 赋值 技术上是能做到的,通常的办法是结合循环对数组中的所有成员逐个赋值,但还是很麻烦。
不用函数 ...
可以用重载,便于观赏 2736946915 发表于 2021-9-21 23:19
重载"="
然后还是用循环赋值,画蛇添足 jhq999 发表于 2021-9-22 06:42
然后还是用循环赋值,画蛇添足
观赏性高 开卷有益,多多益善···
页:
[1]