-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 に答える