结构内部结构
我必须创建一个人,每个人都应该有一个冰箱。 这是最好的方式吗? 如果是这样,我做错了什么? 提前致谢。
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 FRIDGE
与FRIDGE
不同。
您需要在其他结构中使用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
的定义