结构内部结构

sok*_*sok 12 c struct typedef compiler-errors

我必须创建一个人,每个人都应该有一个冰箱.这是最好的方式吗?如果是这样,我做错了什么?提前致谢.

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;
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

错误:字段'冰箱'的类型不完整

che*_*che 19

struct FRIDGE是不同的东西FRIDGE.

您需要FRIDGE在其他结构中使用type .

typedef struct {
 int age;
 FRIDGE fridge;
} PERSON;
Run Code Online (Sandbox Code Playgroud)

或者将冰箱定义为 struct FRIDGE

struct FRIDGE {
 int number;
};
Run Code Online (Sandbox Code Playgroud)

此外,可能必须在使用之前定义结构(例如,在人的上方).