【发布时间】:2015-03-06 06:42:31
【问题描述】:
我有两个不同的结构,有一些共同的元素。
typedef struct X {
struct X *next
char X1[5];
}
typedef struct Y {
unsigned char Y1;
int Y2[5];
bool Y3;
}Y;
typedef struct Z {
unsigned char Z1;
int Z2;
X X1;
Y Y1;
struct Z *next;
}Z;
typedef struct A {
unsigned char A1;
char A2[20];
X X1;
Y Y1;
}
typedef struct B {
unsigned char B1;
char B2[20];
int B3;
Z Z1;
}
我想复制 A 和 B,但我不想使用 reinterpret_cast,因为它有风险,并且代码会部署在多台机器上。请提出任何优雅的复制方法。
附:我不允许更改设计。 :(
【问题讨论】:
-
“我要复制A和B”是什么意思?是否要将 A 的实例复制到 B 的实例?还有什么?
-
是的,我想将 B 的填充实例复制到 A。
-
你希望它做什么?它们有不同的内容类型。
-
你为什么不写一个在两个这样的结构之间复制的函数呢?这是最直接、干扰最小的方法。
-
@DavidSchwartz 和 Ulrich :一个一个地复制每个单独的元素,这是唯一的方法吗?我只是想知道是否存在更好的方法?