13

Person を作成する必要があり、各 Person には Fridge が必要です。これが最善の方法ですか?もしそうなら、私は何を間違っていますか?前もって感謝します。

typedef struct {
 int age;
 struct FRIDGE fridge;
} PERSON;

typedef struct {
 int number;
} FRIDGE;

FRIDGE fr;
fr.number=1;

PERSON me;
me.name=1;
me.fridge = fr;

これにより、次のエラーが表示されます。

エラー: フィールド 'fridge' の型が不完全です

4

4 に答える 4

21

struct FRIDGEとは違うものFRIDGEです。

FRIDGE他の構造でタイプを使用する必要があります。

typedef struct {
 int age;
 FRIDGE fridge;
} PERSON;

または冷蔵庫を次のように定義しますstruct FRIDGE

struct FRIDGE {
 int number;
};

また、使用する前に構造を定義する必要がある場合があります (例: 人の上)。

于 2012-12-26T12:33:23.897 に答える
3

FRIDGEすべての警告とエラーを削除した後、のメンバーを使用する必要があります。FRIDGE前に宣言するPERSON

me.fridge.number = 1

EDITED:バグを見つけました。匿名構造を使用しているため、structキーワードを使用せずにtypedefed 名を使用してください。

struct FRIDGE fridge に変更FRIDGE fridge

于 2012-12-26T12:33:40.670 に答える