-3

我正在尝试将结构 x 复制到另一个嵌套有 x 的结构 y 中。

例如:

#define DATASIZE 128

typedef struct {
        char data[DATASIZE];    
} x_TYPE;


typedef struct {
    int               number;  
    x_TYPE            nested_x;     
    enum boolean      error;     
} y_TYPE;

/* ---- Values for the type field in xy_union ---- */
#define TYPE_IS_X 0;
#define TYPE_IS_Y 1;

typedef struct {
    union {                       /* structure containing x_object */
           x_TYPE      x_object; /*        or y_object as a union */
           y_TYPE      y_object;
    } u;
int type;            /*One of: TYPE_IS_X, TYPE_IS_Y */

} XY_TYPE;

这是我目前复制的方式:

copyXY(XY_TYPE *xx)
{
   XY_TYPE *yy; /* assume this is allocated already */


    yy->u.y_object.nested_x = *xx; /* ERROR LINE */


   return 0;
}

我得到一个编译器错误:错误:从类型'XY_TYPE'分配给类型'x_TYPE'时不兼容的类型。

如果有人知道为什么会发生这种情况,请告诉我。

4

1 回答 1

2

这是你想要的?

XY_TYPE *yy; /* assume this is allocated already */

void copyXIntoYY(XY_TYPE *xx)
{
    yy->u.y_object.nested_x = xx->u.x_object;
}

从问题中不清楚您要做什么。

于 2013-01-21T23:43:22.650 回答