2

以下代码正确吗?

   typedef struct
   {
      int x;
      int y;
   } OTHERSTRUCT;


   struct DATATYPE
   {
      char a;
      OTHERSTRUCT b;
   }

   // ...

   // now we reserve two structs
   struct DATATYPE structA;
   struct DATATYPE structB;

   // ... probably fill insome values


   // now we copy structA to structB
   structA = structB;

两个结构现在完全一样吗?甚至是“结构中的结构”?

谢谢!

4

3 回答 3

2

是的。

当您将一个结构变量分配给另一个结构变量时,每个成员都会被一个接一个地复制,包括OTHERSTRUCT您作为DATATYPE.

于 2012-12-03T10:58:35.617 回答
1

a在和bin之间很可能有填充字节struct DATATYPE,并且这些字节不能保证被结构赋值复制。这并不意味着它们不会,只是你不能依赖它们是否存在。

实际成员ab将具有相同的值。复制的效果递归地应用于结构类型的成员,所以是的,成员的成员也被复制了。

于 2012-12-03T12:24:02.590 回答
1

是的,之后它们的内容是一样的。

于 2012-12-03T11:01:40.160 回答