结构内部结构

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

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; 

这给了我以下错误:

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

struct FRIDGEFRIDGE不同。

您需要在其他结构中使用FRIDGE类型。

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

或者将冰箱定义为struct FRIDGE

 struct FRIDGE { int number; }; 

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

删除所有警告和错误后,您必须使用FRIDGE成员。 在PERSON之前声明FRIDGE

me.fridge.number = 1

编辑 :我发现了这个错误。 您使用的是匿名结构,因此不应使用struct关键字,而应使用typedef ed名称。

struct FRIDGE fridge改为FRIDGE fridge

要么struct FRIDGE;的前向声明struct FRIDGE;

要么,

在struct PERSON使用它之前给出FRIDGE的定义